无法将布尔值传递给带有 Angular 的指令
Cannot pass boolean to directive with Angular
我正在尝试将一个布尔值从我的控制器传递到我的隔离范围指令中。当我从指令的 link 函数 console.log(attrs)
时,someBoolean
属性是一个字符串,呈现实际文本 "main.bool" 而不是 true 或 false 值。当我从外部控制器切换布尔值时,我希望它在指令中更新。
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>
我正在尝试将一个布尔值从我的控制器传递到我的隔离范围指令中。当我从指令的 link 函数 console.log(attrs)
时,someBoolean
属性是一个字符串,呈现实际文本 "main.bool" 而不是 true 或 false 值。当我从外部控制器切换布尔值时,我希望它在指令中更新。
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>