我使用角度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', ''));
}
})
});
它有效,但它没有快速表现。我认为这也违背了角度的概念。