我无法弄清楚如何在以下情况下使用变量。 在html中,我在循环中有以下内容:
<span ng-show='myForm." + ids[i] + ".$error.missingInfo'>Wrong!</span>";
生成的html是正确的,这意味着ids [i]会生成相应的html,如下所示:
<span ng-show='myForm.foo.$error.missingInfo'>Wrong!</span>";
我有一个使用自定义验证指令的输入元素:
<input name="me-foo" id="foo-me" validateI />
在指令中,我想设置“myForm.foo。$ error.missingInfo”的有效性,所以我的指令:
app.directive('validateI', function(){
return{
restrict: 'A',
require: 'ngModel',
link: function(scope, elem, attr, ctrl) {
ctrl.$parsers.unshift(function (viewValue) {
var id= attr.id;
var x= id.indexOf("-");
//theId will be 'foo'
var theId= id.substring(x+1);
if(viewValue.length > 0) {
//this does not work
scope.myForm.theId.$setValidity("missingInfo", true);
//as a test, I hard-coded this and it worked:
scope.myForm.foo.$setValidity("missingInfo", true);
}
}
}
else{
console.log("*** summary is empty");
}
});
}
}
});
在这种情况下是否有办法使用变量,或者当与此指令绑定的元素未命名为'foo'时,如何获取'foo'错误消息?
答案 0 :(得分:0)
只需使用以下内容即可:
ctrl。$ setValidity(“missingInfo”,true);
答案 1 :(得分:0)
不使用点表示法,而是使用此表示法:
scope.myForm[id].$setValidity("missingInfo", false);