AngularJS在控制器内形成有效性

时间:2014-07-31 00:55:15

标签: javascript angularjs validation

据我所知,$ scope.formname.inputname可以访问$ valid属性(和其他类似属性)。$ $来自控制器..

我玩过这个: http://plnkr.co/edit/oEfdMpI3URooJhRFfSUr?p=preview

this.validity = $scope.myForm.input.$valid; //ADDED THIS LINE

为什么我在script.js中添加的这一行会破坏它?我希望{{ctrl.validity}}显示为真。

1 个答案:

答案 0 :(得分:0)

您在控制器的构造函数中添加了该行。

到创建构造函数实例时,视图中的表单尚未编译。

尝试使用$timeout推迟执行此行以使其正常工作:

var ctrl = this;

$timeout(function () {
  ctrl.validity = $scope.myForm.input.$valid; //ADDED THIS LINE
});

或者如果您想让它们保持同步,请使用$watch

$scope.$watch('myForm.input.$valid', function (isValid) {
  ctrl.validity = isValid;
});

希望这有帮助。