据我所知,$ scope.formname.inputname可以访问$ valid属性(和其他类似属性)。$ $来自控制器..
我玩过这个: http://plnkr.co/edit/oEfdMpI3URooJhRFfSUr?p=preview
this.validity = $scope.myForm.input.$valid; //ADDED THIS LINE
为什么我在script.js中添加的这一行会破坏它?我希望{{ctrl.validity}}显示为真。
答案 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;
});
希望这有帮助。