Насколько я знаю, использование свойства контроллера в «Объекте определения директивы» будет создавать отдельный экземпляр этого контроллера каждый раз, когда данная директива связана?Использование директив с контроллером
Теперь, играя с контроллером В качестве паттеров я вижу, что при компиляции каждой из директив запускается заводская функция контроллера, дающая другой результат для метода this.data.hello.
Но, на мой взгляд, я получаю последний экземпляр этого контроллера. Почему это? Что мне не хватает?
JS
angular.module('app', [])
.controller('customCtrl', function() {
console.log('controller');
this.data = {
hello: Math.floor(Math.random() * 200 + 1)
};
})
.directive('customDrv', function() {
var linkFn = function (scope, element, attrs, ctrl) {
console.log('link');
console.log(ctrl.data.hello);
};
return {
templateUrl: 'Home/CustomDrv',
restrict: 'E',
controller: 'customCtrl',
controllerAs: 'vm',
compile: function (element, attrs) {
console.log('compile');
return linkFn
}
}
})
Html
<custom-drv></custom-drv>
<custom-drv></custom-drv>
<custom-drv></custom-drv>
<custom-drv></custom-drv>
Plunker: https://plnkr.co/edit/HII9a7Ff6ryXuz6Fgzr6
или расширить сферу (область применения: правда) –
You» re право. Забыл выделить область действия. благодаря –