2

Если у меня есть нг-повторить директивы связываются с моими исходными данными,Angularjs: Что это лучший способ, чтобы связывание данных позже обновить

<!-- list 1--> 
<li ng-repeat="data in datas">{{data.name}}</li> 

и меняю данные другим нг-повтор и ng- модель директива,

<!-- list 2--> 
<li ng-repeat="data in datas"> 
    <input type="text" ng-model="data.name"> 
</li> 

В угловыми образом, любой метод может сделать список 1 нг-повторить обновление данных не сразу (после того, как нажать на кнопку Сохранить)?

<button ng-click="save()">Save</button> 

ответ

1

Вы можете использовать второй (временный) клон, чтобы внести изменения и скопировать изменения в фактический объект, используя angular.copy.

В контроллере:

/* Persist the changes */ 
$scope.persistChanges = function() { 
    angular.copy($scope.model.tempCopy, $scope.model.items); 
}; 
/* Discard the changes */ 
$scope.discardChanges = function() { 
    angular.copy($scope.model.items, $scope.model.tempCopy); 
}; 

См, также, это short demo.

Наконец, есть аналогичный пример в Угловых документах по адресу angular.copy.

+0

Это именно то, что я хочу. Ваш ответ очень полезен, спасибо! –

1

Кажется, вы создаете новые элементы в пределах datas путем расширения массива на один элемент? Если это так, почему бы не использовать другую модель для формы и нажать результат на массив data, когда нажата кнопка сохранения?

Аналогично, при редактировании элемента, клонируйте элемент массива и создайте его модель для результирующей формы, а затем измените исходный элемент массива при нажатии кнопки сохранения.

Смежные вопросы