2
比方說,我有一個指令,它看起來像:布爾範圍值
<foo-bar bar-foo="booleanValue"></foo-bar>
booleanValue
這裏屬於母公司的範圍 - 這是連接到視圖控制器的範圍,其中上述指令元素位於。
現在,在我的指導,我已經定義了指令,如下所示:這裏
app.directive('fooBar', function() {
return {
restrict: 'E',
scope: {
barFoo: '=barFoo'
},
link: function(scope, iElement, iAttrs) {
scope.$watch('barFoo', function() {
if(scope.barFoo !== true) return;
});
//Code to execute when barFoo is true
}
};
});
問題是,傳遞給barFoo
值是一個布爾值,但它最終是一個字符串值。因此`if(scope.barFoo!== true)將永遠是成功的,鏈接器函數永遠不會執行。我不想將代碼更改爲if (scope.barFoo === "true")
。
如何將一個布爾值傳遞給作用域?
編輯:我想在這裏補充一點,booleanValue
確實是一個布爾值(通常作爲真傳遞)由父控制器到指令。只要這個值被傳遞,它就會被轉換爲字符串而不是其他的布爾值。
其實問題在於我忘記從分配給另一個控制器的元素中刪除'ng-controller'屬性。因此總共有兩個控制器 - 一個來自指令,另一個來自'ng-controller'屬性 - 刪除後者解決了這個問題。感謝您告訴我,我的問題確實是我應用程序中的一個錯誤,而不是標準行爲! – callmekatootie