Мне нужно перебрать массив объектов и отобразить значения в текстовом поле. Ниже приведен код, который я пробовал до сих пор:
<body ng-controller = "testCtrl">
<div class = "container" ng-repeat = "i in items">
<div class = "containerDescription">
<textarea ng-model = "i.name"
style = "height:120px; width:200px;"></textarea><br>
</div>
Значения отображаются в разных текстовых областях. Как вывести значения в одном текстовом поле? Прикрепил ссылку plunkr: http://plnkr.co/edit/DF2Na5vHd9SKu9MHQFvb?p=preview



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Здесь вам не нужен ng-repeat, вы можете объединить все элементы следующим образом и вызвать функцию
$scope.textAreaValues = function() {
return $scope.items.map(function(elem) {
return elem.name;
}).join("\n");
}
Привет, Saneetharan, спасибо за решение. Можно ли вместо запятой отображать значения в следующей строке?
Если вы хотите воспользоваться преимуществом двусторонней привязки данных, чтобы пользователи, введенные вручную в textarea, появлялись в вашей модели, вы можете использовать директиву с настраиваемыми $ formatter и $ parser (чтобы соответствовать вашей структуре данных):
angular.module('demo').directive('formatNames', function() {
return {
require: 'ngModel',
link: function(scope, element, attr, ctrl) {
ctrl.$formatters.push(function(users) {
return users.map(function(user) {
return user.name;
}).join('\n')
});
ctrl.$parsers.push(function(users) {
return users.split('\n').map(function(name, i) {
return { id: i, name: name };
});
})
}
}
});
Я не слишком знаком с Angular, но, учитывая ваши настройки и поведение, я предполагаю, что ваш цикл создает новый экземпляр textarea на основе вашего параметра
ng-model. Будет ли это работать правильно, если вы переместите параметр в элемент внутри текстового поля, например<textarea><p ng-model = "i.name"></p></textarea>?