如何让禁用指令在孤立的范围内工作

前端之家收集整理的这篇文章主要介绍了如何让禁用指令在孤立的范围内工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
最近我必须使一个Input元素与ng禁用和一个自定义指令一起使用,它使用孤立的范围来评估表达式,就像禁用的那样做,不知何故,自定义指令工作正常,但禁用禁用不是,因为它只评估孤立范围内的表达.

自定义指令非常简单,如:

angular
  .module('directives',[])
  .directive('conditionalAutofocus',function () {
    return {
        restrict:'A',scope:{
            condition:'&conditionalAutofocus'
        },link:function (scope,element,attrs) {
            if (scope.condition()) {
                attrs.$set('autofocus','true');
            }
        }
    }
});

页面看起来像:

<input name="pin"
       ng-model="pin"
       type="password"
       required
       ng-disabled="names == null"
       conditional-autofocus="names != null" />

有人已经解决了这个问题吗?

提前致谢!
雅尼

我有同样的问题,最简单的解决方案imho.是使用隔离的作用域继承ngDisabled的属性.
angular.module('directives',[])
.directive('conditionalAutofocus',scope:{
            condition:'&conditionalAutofocus',disabled:'=ngDisabled'
        },'true');
            }
            if(scope.disabled){
                //is disabled
            }
        }
    }
});

可能仅限于限制:’E’.没有测试过别人

猜你在找的Angularjs相关文章