Angularjs 在来自外部控制器$scope的指令中禁用设置ng
链接的fiddle包含一个带有Angularjs 在来自外部控制器$scope的指令中禁用设置ng,angularjs,angularjs-directive,Angularjs,Angularjs Directive,链接的fiddle包含一个带有的简单指令。我想通过在外部控制器中设置一个变量来禁用标记。在devtools中,我看到ng disabled的值从false更改为true,但保持启用状态。有人能帮我弄清楚我做错了什么吗 试试: .directive( 'myTag', function() { return { restrict: 'E', scope: { isDisabled: '=' //use 2-way binding in
的简单指令。我想通过在外部控制器中设置一个变量来禁用
标记。在devtools中,我看到ng disabled的值从false
更改为true
,但
保持启用状态。有人能帮我弄清楚我做错了什么吗
试试:
.directive( 'myTag', function() {
return {
restrict: 'E',
scope: {
isDisabled: '=' //use 2-way binding instead.
},
template: '<select ng-disabled="isDisabled"><option>not disabled</option></select>'
};
});
.directive('myTag',function(){
返回{
限制:'E',
范围:{
isDisabled:“=”//改用双向绑定。
},
模板:“未禁用”
};
});
HTML:
之所以会发生这种情况,是因为使用“@”时,isDisabled是以字符串而不是布尔值计算的。isDisabled是一个表达式,因此应该使用“&”将其传递给指令
.directive( 'myTag', function() {
return {
restrict: 'E',
scope: {
isDisabled: '&'
},
template: '<select ng-disabled="isDisabled()"><option>not disabled</option></select>',
};
});
.directive('myTag',function(){
返回{
限制:'E',
范围:{
isDisabled:“&”
},
模板:“未禁用”,
};
});
小提琴:
更多参考:
您可能还想观看John Lindquist关于指令的精彩视频:
.directive( 'myTag', function() {
return {
restrict: 'E',
scope: {
isDisabled: '&'
},
template: '<select ng-disabled="isDisabled()"><option>not disabled</option></select>',
};
});