使用angularjs指令禁用所有子元素

MRP*_*MRP 0 angularjs angularjs-directive

我创建了一个指令,禁用所有选定的子元素,如下所示:

app.directive('noeDisable', function () {
        var linkFunction = function (scope, element, attributes) {
            scope.text = attributes["=noeDisable"];
            if (scope.text == 'true') {
                $(element).find('input,button,a').attr("disabled", true);
            }
        };
        return {
            link: linkFunction

        };
    });
Run Code Online (Sandbox Code Playgroud)

它适用于这个例子:<div noe-disable="true"> ... </div>.但问题是稍后加载了一些子元素,例如在ajax调用之后或者我在父元素中有另一个angularjs指令将一些子元素添加到其父元素时,所以它们不会被禁用!我该如何处理这个问题?

har*_*shr 6

你可以使用fieldset.

在fieldset中包装所有字段并使用ng-disabled,如:

<fieldset ng-disabled="shouldDisabled"> 
         ... inputs ...
</fieldset>
Run Code Online (Sandbox Code Playgroud)

它将自动禁用字段集内的所有输入.