假设我有一个看起来像的指令:
<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
确实是父控制器对指令的布尔值(通常为true)。只是当值传递时,它会转换为字符串而不是保留布尔值。