Zachowanie kontrolera w dyrektywach
Wiem, że a$scope
odcontroller
można udostępnić w funkcji łącza wdirectives
.
Na przykład w tym kodzie mogę wywołać funkcję z zadeklarowanego kontrolera, aby wydrukować „Hello World” na konsoli przeglądarki:
.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);
});
});
}])
Ok, to działa dobrze.
Moje pytania są:
W tym podejściu jest toPODOBNIE zakres, który będzie dzielony między kontrolerem a dyrektywą?Jakie są konsekwencje zastosowania tego podejścia? Załóżmy, że tak zrobięnie manipulowaćDOM
elementy wcontroller
, tylko wlink function
.Naprawdę muszę unikać manipulowania elementami DOM w tymcontroller
? Nawet jeśli$scope
, $elem
itp. są takie same?To są pytania, na które nie znalazłem odpowiedziDokumentacja dyrektywy Angular.