假设我有一个如下所示的指令:
<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 传递)到指令中。只是当值被传递时,它被转换为字符串而不是保持布尔值。