md-autocomplete的md-input-container不能获得预期的类

时间:2016-08-31 07:59:31

标签: angularjs angular-material

我使用角度1.5.7和角度材料1.1并且具有以下问题。 首先,我动态地将指令添加到自动完成的输入中。

$timeout(function () {
 var myAutoCompleteInput = angular.element($element[0].querySelector('#myAutoCompleteInput'));
 myAutoCompleteInput.attr("myDirective", "");
 $compile(myAutoCompleteInput)($scope);
});

该指令验证并格式化输入。 该指令工作正常,但md-input-container没有类md-input-invalid。如果我使用带有正常输入的指令,则设置类。 没有类,输入看起来像一个有效的。

我如何解决我的问题? 是否会观察输入的类别? &安培;怎么样?

提前致谢

jsfiddle输入和自动完成: https://jsfiddle.net/p4knm9or/3/

我将上面的功能更改为

 $timeout(function () {
    var myAutoCompleteInput = angular.element($element[0].querySelector('#add-ng-iban'));
    myAutoCompleteInput.attr("ng-iban","");
    $compile(myAutoCompleteInput)($scope);

    $scope.$watch(function(){
      return myAutoCompleteInput.attr('class');
    }, function (newValue, oldValue) {
      console.log(newValue);
      var mdInputContainer = angular.element($element[0].querySelector('#add-ng-iban').parentElement);
      if(newValue.indexOf('ng-invalid') !== -1 && newValue.indexOf('ng-touched') !== -1 && mdInputContainer.attr('class').indexOf('md-input-invalid') === -1){
        mdInputContainer.attr("class", mdInputContainer.attr('class') + " md-input-invalid");
      }else if(newValue.indexOf('ng-invalid') === -1 && mdInputContainer.attr('class').indexOf('md-input-invalid') !== -1){
        mdInputContainer.attr("class", mdInputContainer.attr('class').replace('md-input-invalid', ''));
      }
    })
  });

它有效,但它没有快速表现。我认为这也违背了角度的概念。

0 个答案:

没有答案
相关问题