Verhalten des Controllers innerhalb von Richtlinien
Ich weiß, dass a$scope
von einemcontroller
kann mit einer Link-Funktion in geteilt werdendirectives
.
In diesem Code kann ich zum Beispiel eine Funktion vom deklarierten Controller aufrufen, um 'Hello World' auf der Browserkonsole zu drucken:
.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, das funktioniert gut.
Meine Fragen sind:
In diesem Ansatz ist es dieGLEICH Umfang, der zwischen dem Controller und der Richtlinie geteilt wird?Was sind die Konsequenzen für diesen Ansatz? Nehmen wir an, dass ich werdenicht manipulierenDOM
Elemente incontroller
, nur imlink function
.Ich muss wirklich vermeiden, DOM-Elemente in diesem zu manipulierencontroller
? Auch wenn das$scope
, $elem
usw. sind die gleichen?Dies sind Fragen, die ich nicht gefunden habeDokumentation der Winkelrichtlinie.