我的指令的控制器是沒有得到與已使用「=」雙向綁定設置範圍的更新得到更新。指令範圍並不控制器
這裏是我的指令:
.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}}「 –