gpt4 book ai didi

scope - 如何让 ng-disabled 指令在隔离范围内工作

转载 作者:行者123 更新时间:2023-12-03 21:21:18 25 4
gpt4 key购买 nike

最近我必须让一个 Input 元素同时使用 ng-disabled 和一个自定义指令,它们使用隔离范围来评估表达式,就像 ng-disabled 正在做的一样,不知何故,自定义指令工作正常但 ng-disabled 没有,因为它只计算隔离范围内的表达式。

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

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" />

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

提前致谢!
雅尼

最佳答案

我有同样的问题,恕我直言,最简单的解决方案。就是使用隔离作用域来继承ngDisabled的属性。

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

可能只适用于限制:'E'。其他人没测试过

关于scope - 如何让 ng-disabled 指令在隔离范围内工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14019752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com