【发布时间】:2015-12-26 07:36:10
【问题描述】:
在我的项目中,我使用 ui-view 并具有以下结构(删除了不必要的代码):
<main class="content">
<div class="inner" ng-controller="OrderPageController">
<div ui-view="main-info"></div>
<div ui-view="comments"></div>
<div ui-view="bids-list"></div>
<div ui-view="add-bid"></div>
</div>
</main>
在加价视图中:
<form name="newbidform" novalidate ng-submit="postNewBid(newbidform);">
<input type="text" ng-model="newbid.bid" required>
<input type="submit">
</form>
所以,然后我提交表单,我尝试检查所有必需的输入是否有效:
$scope.postNewBid = function(form) {
console.log(form) // $valid and $invalid always undefined
console.log($scope.newbidform) // always undefined
// check validity before send
if (!form.$valid) {
angular.forEach(form.$error, function (field) {
angular.forEach(field, function(errorField){
errorField.$setTouched();
})
});
$scope.failedSubmit = true;
return false;
} else {
$scope.failedSubmit = false;
}
// other things if form is valid
所以,表单总是未定义的问题(根本或 $valid/$invalid attr)。我尝试使用 formName 作为函数中的参数,作为 $scope.formName 变量(始终未定义),并在第二次在表单上定义控制器两次:
<form name="newbidform" novalidate ng-submit="postNewBid();" ng-controller="OrderPageController">
实际上,它可以工作,但是当我尝试访问控制器中的其他变量时 - 我不能。那么,有没有办法在 AngularJs 的控制器中获取表单状态?谢谢
【问题讨论】:
-
如果您可以创建一个工作的 plunker,帮助您会容易得多。谢谢。
-
plunker 是如何帮助你的,请告诉我 :) 我也有同样的情况,有时 $valid/$invalid 是可以的,有时它是未定义的。我不知道这种情况何时发生。
标签: javascript angularjs forms