我有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>
知道为什么child指令不能改变控制器上的howMuch值吗? 相同的代码,但没有父指令工作PERFECT。
答案 0 :(得分:0)
父指令具有隔离范围。您没有显示范围属性,但需要通过隔离范围中的属性访问howMuch
,以便更新控制器范围内的值。