Почему navParams.data пуст, когда я связываюсь с корневой страницей, используя параметр rootParams ion-nav? - PullRequest
0 голосов
/ 12 декабря 2018

Я пытаюсь привязать rootParams к ion-nav, чтобы я мог переключаться между страницами и устанавливать разные параметры.

<ion-nav #content [root]="rootPage" [rootParams]="rootParams"></ion-nav>

Поэтому, когда я меняю page и rootParams в app.component.ts, параметрыбудет передано на новую корневую страницу.

this.rootPage = 'HomePage';
this.rootParams = { value: 1 };

Однако в конструкторе страницы navParams не имеет значения

constructor(public navCtrl: NavController, public navParams: NavParams) {
    const value = this.navParams.data.value;//undefined
}

Есть идеи, как передать параметры на корневые страницы?

1 Ответ

0 голосов
/ 13 декабря 2018

Я также не слишком много знаю о NavController и NavParams, поэтому я определил одно использование сервиса, чтобы оставить этот вопрос.Один простой пример здесь:

import { Injectable } from '@angular/core';
import { Subject, Subscription } from 'rxjs';
@Injectable({
  providedIn: 'root'
})
export class SiteService {
    public rootParams;
    public rootParamsSubject: Subject<Object> = new Subject<Object>();
    constructor() {
        //restore root parameters from localStage or others
        ...
        //and subscribe the subject, you also can subscribe it at your main component
        this.rootParamsSubject.subscribe(data => {
            Object.assign(this.rootParams, data);
        });
    }
}
/*At any others
class ... {
    constructor(private siteService: SiteService)
    function ... {
        if nav params
        this.siteService.rootParamsSubject.next(navParams.data);
        then all subscriber both know it.
    }
}*/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...