У меня есть 2 простых директив ...Директива Внутри другой директивы. Контроллер не может смотреть
родительская директива:
.directive('modal', [function() {
return {
replace: true,
scope: {
/* attributes */
},
templateUrl: 'modal.tpl.html',
transclude: true,
link: function (scope) {
/* code */
}
};
ребенка директива
.directive('keypad', function() {
'use strict';
return {
templateUrl: 'keypad.tpl.html',
scope: {
value: '=',
},
link: function (scope, element, attrs) {
/* code */
}
};
и, наконец, контроллер :
.controller('ctrl', ['$scope', '$timeout', function ($scope, $timeout) {
$scope.$watch('howMuch', function(){
console.log('wont work ;-(');
});
}
и мой шаблон выглядит следующим образом:
<div modal>
<div keypad class="keypad" value="howMuch"></div>
</div>
Любая идея, почему директива ребенок не может изменить значение howMuch на контроллере? Тот же код, но без родительской директивы работает PERFECT.
Мне нужно что-то более общее ... иногда модальная директива содержит другие директивы или статический контент. Как я могу это сделать? – Mauro
Вы, безусловно, можете это сделать, но когда вы изолируете свой охват, вы отрезаете себя от остальной сферы мира, если вы не открываете вход/выход через область изоляции. ИЛИ, вы не изолируете свою область действия ... но чаще, чем нет, вам нужна изолированная область –