Javascript 无法将布尔值传递给具有角度的指令

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 =

我试图将一个布尔值从我的控制器传递到我的隔离范围指令中。当我从指令的link函数调用
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>