我有以下代码:
<form name="reviewForm_{{$index}}" ng-controller="reviewController as reviewCtrl" ng-submit="reviewCtrl.addReview(product)" novalidate>
<blockquote class="newReview">
<b>Stars {{reviewCtrl.review.stars}}</b>
<p>{{reviewCtrl.review.comment}}</p>
<cite>{{reviewCtrl.review.author}}</cite>
</blockquote>
<select class="form-control" ng-model="reviewCtrl.review.stars">
<option value="1">1 star</option>
<option value="1">2 stars</option>
<option value="1">3 stars</option>
<option value="1">4 stars</option>
<option value="1">5 stars</option>
</select><br />
<textarea ng-model="reviewCtrl.review.comment" required></textarea>
<label>by:</label>
<input type="text" ng-model="reviewCtrl.review.author" required /><br />
<div>reviewForm is {{reviewForm_$index.$valid}}</div>
<input class="btn btn-primary btn-large" type="submit" value="Submit" />
</form>
上面的表格位于ng-repeat中,名称为 reviewForm_ $ index 。 这很好。所以它会给reviewForm_0,reviewForm_1等等。
现在,我想通过 {{reviewForm_ $ index_ $ valid}} 检查表单是否有效。 由于某种原因,它没有显示任何东西。 我的语法有错吗?
答案 0 :(得分:0)
实际上,您正在尝试访问不存在的属性,因为reviewform_$index
将被视为表单名称而不是变量。因此,将代码更改为以下内容:
<div>reviewForm is {{reviewCtrl['reviewForm_' + $index].$valid}}</div>
那会有用!!
答案 1 :(得分:0)
好的,感谢@klode,我得到了它的工作。 在这里我的解决方案:
<form name="reviewForm" ng-controller="reviewController as reviewCtrl" ng-submit="reviewCtrl.addReview(product)" novalidate>
<blockquote class="newReview">
<b>Stars {{reviewCtrl.review.stars}}</b>
<p>{{reviewCtrl.review.comment}}</p>
<cite>{{reviewCtrl.review.author}}</cite>
</blockquote>
<select class="form-control" ng-model="reviewCtrl.review.stars">
<option value="1">1 star</option>
<option value="2">2 stars</option>
<option value="3">3 stars</option>
<option value="4">4 stars</option>
<option value="5">5 stars</option>
</select><br />
<textarea ng-model="reviewCtrl.review.comment" required></textarea>
<label>by:</label>
<input type="text" ng-model="reviewCtrl.review.author" required /><br />
<div>reviewForm is {{reviewForm.$valid}}</div>
<input class="btn btn-primary btn-large" type="submit" value="Submit" />
</form>
正如Klode所解释的那样,我可以在没有 $ index 预告片的情况下保留表单名称,并通过它在每个循环中找到表单的 $ valid 属性&#39;的名字就是这样:reviewForm。$ valid