Javascript 无法将布尔值传递给具有角度的指令
我试图将一个布尔值从我的控制器传递到我的隔离范围指令中。当我从指令的link函数调用Javascript 无法将布尔值传递给具有角度的指令,javascript,angularjs,angularjs-directive,angular-directive,Javascript,Angularjs,Angularjs Directive,Angular Directive,我试图将一个布尔值从我的控制器传递到我的隔离范围指令中。当我从指令的link函数调用console.log(attrs)时,someBoolean属性是一个字符串,表示实际文本“main.bool”,而不是真值或假值。当我从外部控制器切换布尔值时,我希望它在指令中更新 控制器 app.controller('MainCtrl', function($scope) { var vm = this; vm.bool = true; vm.change =
console.log(attrs)
时,someBoolean
属性是一个字符串,表示实际文本“main.bool”,而不是真值或假值。当我从外部控制器切换布尔值时,我希望它在指令中更新
控制器
app.controller('MainCtrl', function($scope) {
var vm = this;
vm.bool = true;
vm.change = function() {
vm.bool = !vm.bool;
}
});
模板
<div>
Inside directive: {{someBoolean}}
</div>
内部指令:{{someBoolean}}
当您将指令控制器连接到directiveCtrl
而不是mainCtrl
时,您将使用directiveCtrl.someBoolean
访问变量someBoolean
在这种情况下,将HTML更改为:
<div>
Inside directive: {{directiveCtrl.someBoolean}}
</div>
内部指令:{directiveCtrl.someBoolean}
另一个解决方案是删除指令中的bindToController
属性。这样,就不需要在变量之前使用控制器名称。工作
阅读有关此bindToController
功能的更多信息
<div>
Inside directive: {{directiveCtrl.someBoolean}}
</div>