在postlink时间将类数据绑定到输入的最好方法是什么?

时间:2014-06-10 21:45:12

标签: javascript html angularjs

我有一个包含文本输入的指令。当模板放在一起时,输入具有由ngRequired和ngDisabled添加的类。在postlink时间,我还有其他要添加到输入中的类,但我不知道最好的方法是什么。

我使用了一种方法,但它覆盖了angularjs的类。

template: '<input class="{{classes}}" ng-required="true"></input>'

还有第二种方法只使用element.addClass添加类,但这并没有数据绑定。

link: function(scope, element) { element.addClass(getGeneratedClasses()) }

http://jsfiddle.net/T2Zvs/4/

Ng-class在这里没有帮助,因为我想让一个控制器使用该指令来控制类。

是否有一种很好的方法从链接函数中绑定数据类?

1 个答案:

答案 0 :(得分:0)

使用第二种方法,您可以在(后)链接功能中设置$ watch:

 link: function(scope, element) {
      scope.$watch(function() {
          return {
              hasRequiredClass: element.hasClass('required'),
              hadDisabledClass: element.hasClass('disabled')
          };
      }, function(newVal, oldVal) {
          if (newVal.hasRequiredClass) {
             //add additional classes
          }
          if (newVal.hasDisabledClass) {
             // add additional classes
          }
      });
 });