Comportamiento del controlador dentro de las directivas.
Sé que un$scope
a partir de unacontroller
se puede compartir a una función de enlace endirectives
.
Por ejemplo, en este código puedo llamar a una función del controlador declarado para imprimir "Hola mundo" en la consola del navegador:
.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, esto funciona bien.
Mis preguntas son:
En este enfoque, es elMISMO ¿Alcance que se compartirá entre el controlador y la directiva?¿Cuáles son las consecuencias de utilizar este enfoque? Supongamos que lo haréno manipularDOM
elementos encontroller
, solo enlink function
.Realmente necesito evitar manipular elementos DOM en estecontroller
? Incluso si el$scope
, $elem
, etc son los mismos?Estas son preguntas que no encontré enDocumentación directiva angular.