修复解除绑定后AngularJS中模型和视图之间的断开连接
在stackoverflow社区的帮助下,我成功地将AngularJS的默认即时验证更改为onblur和onsubmit验证: 这对于验证部分很好,但我现在似乎遇到了一个问题,当我尝试在控制器中使用模型时,我的模型没有设置 此plunk有一个示例,我尝试记录user.mail的值: 我知道我可以在指令中做到这一点:修复解除绑定后AngularJS中模型和视图之间的断开连接,angularjs,angularjs-directive,Angularjs,Angularjs Directive,在stackoverflow社区的帮助下,我成功地将AngularJS的默认即时验证更改为onblur和onsubmit验证: 这对于验证部分很好,但我现在似乎遇到了一个问题,当我尝试在控制器中使用模型时,我的模型没有设置 此plunk有一个示例,我尝试记录user.mail的值: 我知道我可以在指令中做到这一点: scope.authenticate.userName = elm.val(); 问题是,这将使该指令仅对该元素可用,因为它将意味着对元素的modelname进行硬编码 有没有可
scope.authenticate.userName = elm.val();
问题是,这将使该指令仅对该元素可用,因为它将意味着对元素的modelname进行硬编码
有没有可能以不同的方式设置模型的值,或者将modelname放入指令中,从而生成该变量?您看到的问题是,您从未告诉过要保留的值是什么(请看下面的代码) 您要查看的是
$setViewValue
方法
我已经添加了一个div,它只是转储用户,所以您可以看到发生了什么
我对控制器所做的唯一更改是在doValidation
功能中:
function dovalidation() {
var email = elm.val();
if (EMAIL_REGX.test(email)) {
ctrl.$setViewValue(email); // set the model to the right value
ctrl.$setValidity('emails', true);
} else {
ctrl.$setViewValue(null); // invalid, so set the model to null
ctrl.$setValidity('emails', false);
}
}
伟大的我知道必须有一个简单的方法,但就是不知道怎么做。幸好你能理解我有些混乱的描述:-)