#angularjs #ng-repeat
#angularjs #ng-repeat
Вопрос:
Я родом из Китая, мой английский очень плохой, поэтому я делаю демонстрацию. как я могу обновить массив внутри ng-repeat
?
Ответ №1:
HTML:
<body ng-app="main" ng-controller="DemoCtrl">
<table ng-table class="table">
<tr ng-repeat="user in users">
<td data-title="'Name'">{{user.name}}</td>
<td data-title="'Age'">{{user.age}}</td>
<td>
{{user.spms|json}}
<div ng-repeat="u in user.spms">
<span ng-bind="u"></span>
<input type="text" ng-model="u" ng-change='updateArray($parent.$index, $index, u)'>
</div>
</td>
</tr>
</table>
</body>
JS:
var app = angular.module('main', []).
controller('DemoCtrl', function($scope) {
$scope.users = [{
name: "Moroni",
age: 50,
spms: [
6135.7678,
504.4589,
2879.164,
669.7447
]
},
{
name: "seven",
age: 30,
spms: [
34135.7678,
5034.42589,
22879.1264,
63469.72447
]
}
];
$scope.updateArray = function(parent, index, u) {
$scope.users[parent].spms[index] = u * 1; // multiply by one to keep the value a Number
}
})
Здесь есть проблемы: каждое обновление изменяет область действия, поэтому вы можете изменить их только один раз, щелкнув, а затем изменить — поэтому я бы рекомендовал добавить кнопку обновления значений и реализовать более или менее ту же логику для обновления значений массива.