#angularjs
#angularjs
Вопрос:
Если я отправляю форму в цикле 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);
};
Но если я оставлю форму вне цикла, тогда я получу значение в консоли. В чем проблема в моем коде
Комментарии:
1. удалите тег формы в n-repeat и напишите ng-click=»addReply(com.id )» в кнопке ответа. com.id является динамичным. используйте только 1 тег формы вне тега списка
Ответ №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);
};