Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > Angular2 передача переменной между компонентами


Автор: numerovan 17.4.2017, 03:15
Суть следующая:
1. имеем роут /comments , при загрузке этого роута с сервера подгружаются данные
2. имеем роут /comments/:id , на место ":id" подставляется id элемента

Необходимо в роуте /comments/:id использовать данные уже ранее сформированного списка (/comments) и не обращаться на сервер лишний раз. Во втором компоненте не могу вызывать кастомный тег первого, иначе он отображается во втором, хотелось бы просто список подтянуть только.
Создал Сервис, при обращении к сервису подгружаю список и сохраняю в свойстве сервиса и далее, планировал, обращаться только к этому свойству сервиса, но в чем проблема - он обнуляется при переходе между роутами. Что делать?

Код

@Injectable()
export class HttpService {
    comments: Comment[] = [];
......
        loadComments() {
        return this.http.get('/admin/get-json-comments-list')
                        .map((resp: Response)  => this.comments = resp.json())
                        .catch((error: any)    => { return Observable.throw(error._body); });
    }
}


код наверно не обязательно вставлять ... по тексту вроде понятно описал.

Автор: numerovan 24.4.2017, 23:46
сервис добавить в главный модуль, этот сервис после не добавлять в св-во providers компонентов, при этом он и не будет перезаписываться (не собудь создоваться новы объект).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)