Ionic 2で問題があり、グローバル変数を設定しています。次のように私のアプリの構造は次のとおりです。グローバル変数Ionic 2
Main app
|
|--- Page1 (Info)
|--- Page2 (Map)
|--- Page3 (List)
|
|--- ItemTabsPage
|
|---tab1
|---tab2
|---tab3
私の意図は、ページ3でリストを表示することで、一つのアイテムが選択されると、タブに追加情報を表示します。
は、私が使用してタブを持つページへ3ページから情報を送信します。
itemTapped(event, item) {
this.nav.push(ItemTabsPage, {
item: item
});
}
問題は、私は子供のタブに情報を送信するために同じことを行うことができないということです。どの項目が選択されているかによって異なる情報を表示したい。次のように
import {Injectable} from 'angular2/core';
@Injectable()
export class GlobalVars {
constructor(myGlobalVar) {
this.myGlobalVar = "";
}
setMyGlobalVar(value) {
this.myGlobalVar = value;
}
getMyGlobalVar() {
return this.myGlobalVar;
}
}
と、リストにitemTappedのコードを更新する:ただし
itemTapped(event, item) {
this.nav.push(ItemTabsPage, {
item: item
});
this.globalVars.setMyGlobalVar(item);
}
I常に、私は変数の値を格納するために注射globalVars.jsを定義しようとしています同じエラーが表示されます。
Uncaught EXCEPTION: Error during evaluation of "click"
ORIGINAL EXCEPTION: TypeError: Cannot read property 'setMyGlobalVar' of undefined
PAGE3のコードを次のとおりです。
import {Page, NavController, NavParams} from 'ionic-angular';
import {ItemService} from '../services/ItemService';
import {ItemTabsPage} from '../item/item-tabs/item-tabs';
import {GlobalVars, setMyGlobalVar} from '../../providers/globalVars';
import {Http} from 'angular2/http';
import 'rxjs/add/operator/map';
@Page({
templateUrl: 'build/pages/item-list/item-list.html',
providers: [ItemService]
})
export class ItemListPage {
static get parameters() {
return [[NavController], [NavParams], [Http]];
}
constructor(nav, navParams, http, globalVars) {
this.nav = nav;
// If we navigated to this page, we will have an item available as a nav param
this.selectedItem = navParams.get('item');
this.http = http;
//this.items = null;
this.globalVars = globalVars;
this.http.get('https://website-serving-the-info.com/items.json').map(res => res.json()).subscribe(data => {
this.items = data.items;
},
err => {
console.log("Oops!");
});
}
itemTapped(event, item) {
this.nav.push(ItemTabsPage, {
item: item
});
this.globalVars.setMyGlobalVar(item);
}
}
誰もが何か提案がありますか?マイイオンのインストールは次のとおりです。あなたのクラスItemListPageで
Cordova CLI: 6.1.1
Gulp version: CLI version 3.9.1
Gulp local: Local version 3.9.1
Ionic Framework Version: 2.0.0-beta.4
Ionic CLI Version: 2.0.0-beta.25
Ionic App Lib Version: 2.0.0-beta.15
OS: Distributor ID: LinuxMint Description: Linux Mint 17.3 Rosa
Node Version: v5.11.0
答えてくれてありがとうございます。しかし、[GlobalVars]にアプリケーションの空白を追加しても機能しません。 –
まだ何か問題があるため、https://github.com/realjumy/menuPlusTabsにコードをアップロードしました。私は何が間違っているのか分かりません。 –