Хранить объект, который может быть обновлен в любое время через приложение Angular 5 - PullRequest
0 голосов
/ 31 мая 2018

Кажется, я не могу найти лучшее решение для этого, скажем, у меня есть вызов API, который дает мне объект таких фактов, как ...

facts: {
    name: 'james',
    age: 23,
    address: '123 fake st'
}

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

, чтобы я мог сделать что-то подобное

storeFact() {
   this.service.facts.name = 'nick'
}

и тогда объект обновится в службе и будет выглядеть следующим образом ..

facts: {
   name: 'nick',
   age: 23,
   address: '123 fake st'
}

, и тогда, очевидно, я смогу затем снова вызвать это приложение в моем приложении, например {{facts.name}}, и этоreturn nick

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

newFact() {
   this.service.facts.hobbies = 'swimming';
}

Я не совсемконечно, как это может работать, если я вызову API и сохраню возвращенный результат, который является объектом фактов, в общем сервисе, могу ли я добавить, получить и изменить пары ключ-значение ??

и если я использовал классический BehaviorSubject и observable маршрут на .next() не означает, чтоуничтожить текущий объект, когда я передам this.service.facts.name = 'nick'

любая помощь будет оценена

Спасибо

1 Ответ

0 голосов
/ 31 мая 2018

Это не самое элегантное решение, и оно было для более ранней версии angular, но все равно должно работать.Вы можете использовать локальное хранилище для хранения переменной и доступа к ней через ваше приложение.В вашем случае

    this.facts = JSON.parse(localStorage.getItem('facts'));
    this.facts.hobbies = 'swimming';
    localStorage.setItem('facts', JSON.stringify(this.facts));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...