Это зависит от вашей ситуации, но если вы не хотите, чтобы сохранить состояние после перезагрузки страницы, которое было бы полезно для localStorage
, но, скорее, состояние запоминается только тогда, когда вы возвращаетесь назад (и не обязательно, когда вы позже переходите обратно назад в представление снова), тогда я делаю это: я делаю отдельный сервис, просто объект, который торчит вокруг, в который я могу впрыснуть куда угодно и хранить некоторые переменные. В Angular 1 это будет объект службы.
angular.module('foo').factory("placeHelper", [
() => {
let _place = null;
class PlaceHelper {
set place(place){
_place = place;
}
get place(){
return _place;
}
reset(){
_place = null;
}
}
let helper = new PlaceHelper();
return helper;
}
]);
Затем в контроллер, который вы собираетесь обратно, вы впрыснуть placeHelper и попросить его на место и восстановить свое состояние с помощью $scope.place = placeHelper.place
и когда в пользовательском интерфейсе для этого контроллера кто-то выбирает место, вы просто магазин это на службе, placeHelper.place = $scope.place
.
Я бы использовал localStorage внутри службы, если бы я хотел сохранить состояние после обновления страницы.
Мне не нравится загрязнение $ rootScope, потому что сложнее отслеживать, когда вы начинаете иметь больше нескольких несвязанных методов, и ваши свойства должны иметь более длинные имена (или группироваться по объектам в любом случае). Для удобства обслуживания лучше инкапсулировать и разделить проблемы.
варьирование Услуги: Услуга может быть литерал объекта вместо класса, и вы можете сразу установить свойства вместо того, чтобы использовать методы, если вы хотите, чтобы это было немного более простым.
angular.module('foo').factory("placeHelper", [
() => {
let helper = {
place: null,
reset(){
this.place = null;
}
};
return helper;
}
]);
Просьба уточнить, что вы хотите. –
Почему вы помещаете текстовое поле в тег href? –
Хотите узнать, работает ли какой-либо из параметров в моем ответе? –