我试图将控制器中的布尔值传递给我的隔离范围指令。当我从指令的链接函数console.log(attrs)
时,someBoolean
属性是一个字符串,呈现实际文本" main.bool"而不是真值或假值。当我从外部控制器切换布尔值时,我希望它在指令中更新。
https://plnkr.co/edit/80cvLKhFvljnFL6g7fg9?p=preview
app.directive('myDirective', function() {
return {
restrict: 'E',
replace: true,
scope: {
someBoolean: '='
},
templateUrl: 'myDirective.html',
link: function(scope, element, attrs) {
console.log(scope);
console.log(attrs);
},
controller: function($scope, $element, $attrs) {
console.log(this);
},
controllerAs: 'directiveCtrl',
bindToController: true
};
});
控制器
app.controller('MainCtrl', function($scope) {
var vm = this;
vm.bool = true;
vm.change = function() {
vm.bool = !vm.bool;
}
});
模板
<div>
Inside directive: {{someBoolean}}
</div>