我的指令的控制器是没有得到与已使用“=”双向绑定设置范围的更新得到更新。指令范围并不控制器
这里是我的指令:
.directive('navigation', function() {
return {
restrict: 'E',
scope: {
selection: '=?selectedItem',
goforward: '&onForward'
},
controller: function() {
var vm = this;
vm.hideForward = !vm.selection
},
controllerAs: 'vm',
bindToController: true,
template: '<button ng-hide="vm.hideForward" ng-click="vm.goforward()">Continue</button>'
};
});
这里是我的html文件,我使用指令:
<div class='product' ng-click='ctrl.selectedItem = true'>item</div>
<navigation on-forward="ctrl.goForward()" selected-item='ctrl.selectedItem'></navigation>
注:ctrl.goForward()的作品就好了。
的vm.selectedItem在HTML的控制器一旦产品的div被点击时,才设置为true。
我预计ctrl.selectedItem
被传入我的指令的控制器并修改vm.hideForward
的值,除非没有发生。
我希望能够改变导航指令是否可见和/或活性取决于传递到它无论从任何控制器的范围我用我的指示变量。
如果我把一个<div>{{vm.selectedItem}}</div>
在我的指令的模板,它根据ctrl.selectedItem
值的变化如何正确输出。我的问题是让指令的控制器也改变。
我如何设立这个范围不适当地结合?我使用的角度1.5.3
通常它不是有意义的,但我已经遇到过几次。使用NG隐藏有时不能按预期工作。具有u试图用NG-如果不是在你的指令的模板 –
ctrl.selectedItem从本控制器的变量。因此,尽管它传递作为属性,您需要将它作为'{{ctrl.selectedItem}}“ –