我在 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');
});
}
};
});