Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 在来自外部控制器$scope的指令中禁用设置ng_Angularjs_Angularjs Directive - Fatal编程技术网

Angularjs 在来自外部控制器$scope的指令中禁用设置ng

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

链接的fiddle包含一个带有
的简单指令。我想通过在外部控制器中设置一个变量来禁用
标记。在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>',
      };
    });