Когда я хочу добавить ту же информацию, это согреет мне ошибку дублирования строки.Ошибка дублирования строк AngularJS
Эта проблема возникает из $ scope.showSal и ng-repeat = "rows in showSal".
Если я использую ng-repeat = "строки в треке showSal по индексу $" Я не могу добавить повторяющиеся строки, и мне это нужно.
Как я могу разобрать и добавить дубликаты? Я пытался сделать данные JSON, но я ошибаюсь, даже если я использую метод stringify и parse ... возможно, я не слишком хорошо реализовал разбор ...
PS: Мне нужно разобрать массив объектов.
HTML файл:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Research project</title>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script src="js/app/research.js"></script>
</head>
<body ng-app="testApp" ng-controller="mainCtrl">
<table>
<thead>
<tr>
<th>Nr.</th>
<th>An</th>
<th>Den</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="rows in showSal">
<td>{{rows.id}}</td>
<td>{{rows.an}}</td>
<td>{{rows.den}}</td>
</tr>
</tbody>
</table>
<form id="add-content" ng-controller="addInfoCtrl" ng-submit="addInfoDb()">
<br/>
<div class="controls">
<button type="submit" style="width: 220px;">Adauga salariu</button>
</div>
</form>
</body>
</html>
JavaScript файла:
var app = angular.module("testApp", []);
app.controller('mainCtrl', ['$scope', '$sce', '$document', function($scope, $sce, $document) {
$scope.showSal = [
{ id: '1', an: '2016', den: 'Oracle' },
{ id: '2', an: '2016', den: 'Oracle' }
];
}]);
app.controller('addInfoCtrl', ['$scope', function($scope) {
$scope.testAdd = { id: '100', an: '2016', den: 'Oracle' }
$scope.addInfoDb = function() {
$scope.showSal.push($scope.testAdd);
console.log($scope.showSal.length);
}
}]);
Вы должны использовать 'трек $ index' и в вашей * оных * функция, вам нужно на самом деле создать дубликат объекта , может быть, как 'angular.copy (objToCopy)' – jusopi
, используя 'track by $ index', работает просто отлично https://jsbin.com/vufidedoti/edit?html,js,output – jusopi