0

我在 AngularJS 中有一个非常简单的案例:

<select ng-repeat="el in elms" disabled="disabled" remove-disable>

     <option>make a selection</option>

</select>

最初我的选择是空的,所以我添加了禁用属性以避免人们点击它。

当 ajax 调用完成并且选择呈现我要删除禁用属性的选项列表时。

它看起来很直接,对吧?但我所看到的只是使用 $watch 的方法,而不是完全针对这种情况。

我从 jQuery 的角度来处理它,在 ajax 调用之后查看 DOM,找到元素并删除 attr。像这样:

$('select').removeAttr('disabled');

不幸的是,我不想做 jQuery,我想用一个指令来做,因为这就是目的。有角度的人说所有 DOM 操作都应该通过指令来完成,所以我想知道如何。



    enrollmentModule.directive('removeDisable', function () {
        return {
            restrict: 'A',
                scope: {
                    ngModel : '='
                },
            link: function (scope, element, attrs) {
                console.log('no people yet');
                if (element[0].complete) {
                    console.log('element finish rendering');
                };
                scope.$watch(attrs.ngModel, function () {
                     console.log('agents arrived');
                    });
                }
            };
    });


4

1 回答 1

4

AngularJS 有一个ngDisabled指令,您可以使用它来建立列表状态和表达式之间的链接:

 <select ng-repeat="el in elms" ng-disabled="elms.length == 0">
      <option>make a selection</option>
 </select>
于 2013-06-17T20:56:55.063 回答