Ответ 1
Да, использование angular.copy()
здесь абсолютно уместно. Если вы хотите что-то более продвинутое, вы можете проверить angular-history
Я показываю список элементов, каждый из которых имеет кнопку "edit" рядом с ним. Щелчок на этом открывает окно мода angular ui, и пользователь может изменить некоторые свойства конкретного элемента.
Теперь, что меня беспокоило, что при вводе этого окна редактирования конкретный элемент в списке элементов сразу отражал изменения. Я только хотел, чтобы он обновлялся, когда пользователь нажал "ok" в модальном режиме и не изменился вообще, если пользователь выбрал "cancel".
В моем обходе используется копия, чтобы сделать копию нужного элемента, которая затем служит в качестве модели для представления:
var modalInstance = $modal.open({
templateUrl: 'scripts/app/views/editBond.html',
controller: function ($scope, $modalInstance, bond) {
$scope.bond = angular.copy(bond);
$scope.ok = function () {
$modalInstance.close($scope.bond);
};
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
},
resolve: {
bond: function () {
return bond;
}
}
});
Использует angular.copy(), чтобы избежать таких проблем? Это проблема масштаба?
Да, использование angular.copy()
здесь абсолютно уместно. Если вы хотите что-то более продвинутое, вы можете проверить angular-history