如果我在ng repeat循环中提交表单,则不会传递表单值。
<li ng-repeat="com in post.comments">{{ com.body }}
<h4>Reply</h4>
<form ng-submit="addReply()">
<textarea name="rbody" ng-model="rbody"> </textarea>
<button type="submit">Reply</button>
</form>
</li>
控制器中的:
$scope.addReply = function(){
console.log($scope.rbody);
};
但如果我将表格保留在循环之外,那么我在控制台中获得价值。我的代码中的问题是什么
答案 0 :(得分:1)
您正在使用$scope.rbody
变量的单一等值:因此,它会在ng-repeat的每次迭代中被替换。
要解决此问题,只需将表单的ng-model
附加到当前的ng-repeat迭代中,例如:
<li ng-repeat="com in post.comments">{{ com.body }}
<h4>Reply</h4>
<form ng-submit="addReply(com)">
<textarea name="rbody" ng-model="com.rbody"></textarea>
<button type="submit">Reply</button>
</form>
</li>
然后在您的控制器中,您将能够获得数组的每个插入值:
$scope.addReply = function(comObj){
console.log(comObj.rbody);
};