#javascript #angularjs
#javascript #angularjs
Вопрос:
У меня есть приложение AngularJS, в котором пользователь может выбрать элемент из списка. Затем они переходят на другой экран, который содержит элемент select, содержимое которого основано на выборе с первого экрана. Я выбираю элемент из этого элемента выбора, и он обновляет некоторые текстовые поля на экране, и все работает нормально.
Проблема, с которой я сталкиваюсь, заключается в том, что если я вернусь к первому экрану и выберу другой элемент из списка, в элементе выбора на 2-й странице вместе с текстовыми полями по-прежнему будет активно выбран «старый» элемент, а в текстовых полях отображаются «старые» данные.
Как мне сказать Angular забыть о предыдущих выборках, которые больше не находятся в области видимости? Должен ли я вручную сбрасывать все поля при нажатии «Назад»?
Комментарии:
1. Не глядя на код, помочь будет очень сложно. Не могли бы вы поделиться plunker, демонстрирующим вашу проблему?
Ответ №1:
Вам нужно сбросить область видимости:
function TodoCtrl($scope) {
$scope.data = [
{text:'learn angular', done:true},
{text:'build an angular app', done:false}
];
$scope.orig = angular.copy($scope.data);
$scope.reset = function() {
$scope.data = angular.copy($scope.orig);
};
}