我只是想做一個簡單的指令,但由於某種原因,2方式數據綁定不起作用在我的指令。從我的代碼中,您可以看到一個控制檯登錄該指令,它將讀取我在$ scope.displayMaintenance變量中的正確信息,但我無法在指令中更改它。2方式綁定不起作用在隔離範圍指令
HTML:
<maintenance-banner display-maintenance="displayMaintenance"></maintenance-banner>
控制器:
$scope.displayMaintenance = false;
$scope.$watch('displayMaintenance', function(data) {
console.log("i changed!: " + data);
});
指令:
.directive('maintenanceBanner', function() {
return {
restrict: 'E',
replace: true,
scope: {
displayMaintenance: '='
},
templateUrl: '/partials/navbar/maintenance-banner.html',
link: function(scope) {
console.log(scope.displayMaintenance);
scope.displayMaintenance = true;
}
};
})
有什麼建議?
你可能會創建一個JS Bin或重新創建問題的東西嗎?我沒有看到任何明顯的錯誤。我通常做我的控制器有點不同,但不應該導致問題。 – SethGunnells
http://jsbin.com/jalojurewe/1/edit但我不能在JSBin上重現錯誤。 – m0ngr31
然後問題必須是這裏顯示的邏輯以外的東西。最大的問題通常是拼寫錯誤或使用錯誤的符號(camelcase而不是破折號,反之亦然)。在這一點上,我唯一可以說的就是嘗試再次編寫控制器和指令,儘可能簡化事情,並以小塊形式構建更復雜的邏輯。這樣,如果出現問題,你會更好地瞭解它發生的情況。 – SethGunnells