gpt4 book ai didi

angularjs - 如何创建指令以禁用 div 元素中的所有元素

转载 作者:行者123 更新时间:2023-12-02 23:20:35 26 4
gpt4 key购买 nike

如何创建一个指令来禁用 div 元素中的所有元素?

类似这样的东西:

<div div-disabled div-disabled-condition="state=='Stack'||state=='Over'||state=='Flow'">
<input type="text"/>
<input type="url"/>
<div>
<input type="text"/>
<input type="url"/>
</div>
<div>

这可能吗?我不知道。

     angular
.module('uiRouterApp.ctrl.add', ['uiRouterApp.ctrl.customDirective'])
.controller('addCtrl', [
'$scope',
'$location',
'$stateParams',
'$state',
function ($scope, $location, $stateParams, $state) {
$scope.state = {};
}
]).directive('divDisabled', function () {
return {
scope: {
divDisabledCondition: '@'
},
link: function (scope, element, attrs) {

}
};
});

更新:

请看这个:

   <div class="col-sm-12 ng-isolate-scope" selected-object="SelectedAutoComplete" local-data="requirements.Item1" search-fields="NameFa,NameEn" title-field="NameFa" minlength="2" field-required="true" image-field="ImageUrl" disable-auto-compelete="response.State=='Success'||response.State=='Error'||response.State=='Warning'">

<div class="angucomplete-holder">
<input id="_value" ng-model="searchStr" type="text" placeholder="select" class="form-control ng-dirty" ng-focus="resetHideResults()" ng-blur="hideResults()" autocapitalize="off" autocorrect="off" autocomplete="off" ng-change="inputChangeHandler(searchStr)" ng-disabled="response.State=='Success'||response.State=='Error'||response.State=='Warning'" style="">

<!-- ngIf: showDropdown -->
</div>
</div>

指令:

.directive('contentsDisabled', function() {
return {
compile: function(tElem, tAttrs) {
var inputs = tElem.find('input');
for (var i = 0; i < inputs.length; i++) {
inputs.attr('ng-disabled', tAttrs['disableAutoCompelete']);
}
}
}
})

为什么当状态为“成功”或“错误”或“警告”时输入未禁用?

最佳答案

您可以创建一个指令,通过添加条件在编译时更改其内容。沿着这些思路(未经测试):

module.directive('contentsDisabled', function() {
return {
compile: function(tElem, tAttrs) {
var inputs = tElem.find('input');
inputs.attr('ng-disabled', tAttrs['contentsDisabled']);
}
};
});

在这里查看 JSFiddle:http://jsfiddle.net/HB7LU/6380/

这有一个缺点,您只需从 contents-disabled 复制表达式即可。进入ng-disabled任何输入的属性 - 如果有人使用反过来创建 <input> 的指令元素,你不会拾取它们。

掌握 FormController 就不那么脆弱了实例并迭代其所有控件,但遗憾的是 AngularJS 没有以表单形式公开控件。也许可以提出功能请求?

关于angularjs - 如何创建指令以禁用 div 元素中的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25822513/

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