AngularJS表格验证延迟了吗?

时间:2014-06-25 15:10:01

标签: javascript angularjs validation angularjs-directive

我认为AngularJS中的表单验证会以某种方式延迟,这很烦人。我在指令的链接功能中有以下代码:

console.log(scope.signinForm.$invalid);   // TRUE
scope.signin.email = 'some@email.com';
scope.signin.password = 'test';
console.log(scope.signinForm.$invalid);   // still TRUE, should be FALSE at this point

所以我继续使用了setTimeout函数:

var myFunction = function () {
  console.log(scope.signinForm.$invalid); // FALSE, which is correct
};

console.log(scope.signinForm.$invalid);   // TRUE
scope.signin.email = 'some@email.com';
scope.signin.password = 'test';
setTimeout(myFunction, 500);

有人可以告诉我我需要立即更新$ invalid吗?

谢谢,

史蒂芬

1 个答案:

答案 0 :(得分:1)

您可以尝试应用范围:

console.log(scope.signinForm.$invalid);   // TRUE
scope.signin.email = 'some@email.com';
scope.signin.password = 'test';
scope.$apply();
console.log(scope.signinForm.$invalid);