42

私は Ionic 2 を使用して最初のアプリの作成を開始しています。多くの試行錯誤を経て、Google で検索しても何の助けにもならないところまで来ました。

いくつかの NavParams をタブに渡そうとしています。NavParams は、親タブ ページで使用できます。

@Page({
    templateUrl: 'build/pages/tabs/tabs.html'
})
export class TabsPage {
  constructor(params: NavParams) {

      this.params = params;
      console.log(this.params); // returns NavParams {data: Object}

      // this tells the tabs component which Pages should be each tab's root Page
      this.tab1Root = Tab1;
      this.tab2Root = Tab2;
      this.tab3Root = Tab3;
    }
}

しかし、タブ自体内で NavParams を取得できないようです。

@Page({
    templateUrl: 'build/pages/tab1/tab1.html'
})
export class Tab1 {
    constructor(nav: NavController, params: NavParams, platform: Platform) {
        this.nav = nav;
        this.params = params;
        this.platform = platform;

        console.log(this.params); // returns NavParams {data: null}
    }
}

タブページからタブ自体にパラメーターを渡す方法、またはタブの親からパラメーターを要求する方法が完全にはわかりません。私は次のようなものを想定しています:

this.tab1Root = Tab1(this.params);

どんな助けでも大歓迎です!

4

5 に答える 5

7

私が知っているタブページで Params を直接渡す方法はありません。

NavControllerをいじって動作させることができると思います。

適切な回避策は、パラメーターを注入されたサービス app/services/params.js に入れることです。

import {Injectable} from 'angular2/core';

@Injectable()
export class Params{
    constructor(){
        console.log("Params()");  
        this.params={};
    }
}

そしてコントローラーで:

    import {Params} from '../../services/params'

    @Page({
      templateUrl: 'build/pages/home/home.html',
    })
    export class XYPage{

    constructor(nav: NavController,platform: Platform, params: Params) {
       console.log("XYPage()",this);
       console.log("XYPage()", params.params);
       params.params={id="001"};

@App にサービスを注入することを忘れないでください

于 2016-02-03T12:02:53.523 に答える