Поведение контроллера внутри директив
Я знаю что$scope
изcontroller
может быть разделен на функцию ссылки вdirectives
.
Например, в этом коде я могу вызвать функцию из объявленного контроллера, чтобы напечатать «Hello World» на консоли браузера:
.directive('myDirective', [function () {
return {
restrict : 'E',
replace : true,
controller: 'MyController',
templateUrl : 'directives/myDirective.tpl.html',
link : function (scope, elem, attrs, controller) {
scope.message = 'Hello World!';
}
};
}])
.controller('MyController', [function ($scope, $element, $attrs, $log, $timeout) {
// $timeout to wait the link function to be ready.
$timeout(function () {
// This prints Hello World as expected.
$log.debug($scope.message);
});
});
}])
Хорошо, это работает отлично.
Мои вопросы:
В этом подходе этоТАКОЙ ЖЕ объем, который будет разделен между контроллером и директивой?Каковы последствия использования этого подхода? Давайте предположим, что я будуне манипулироватьDOM
элементы вcontroller
, только вlink function
.Мне действительно нужно избегать манипулирования элементами DOM в этомcontroller
? Даже если$scope
, $elem
и т. д. одинаковы?Это вопросы, которые я не нашел наУгловая директивная документация.