在页面之间传递参数 ionic
passing parameter between pages ionic
嗨,我是 ionic 的新手,我正在尝试将扫描信息从一页传递到另一页,当我执行程序时,我有一个 console.log 来检查信息是否是它的正确传递但在 chrome 控制台上显示未定义,让我粘贴我的代码:
home.ts 我尝试从扫描中发送信息:
import { Component } from '@angular/core';
import { NavController,Platform } from 'ionic-angular';
import { BarcodeScanner } from '@ionic-native/barcode-scanner';
import { TabsPage } from '../tabs/tabs';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
private barcodeText:String;
private barcodeFormat:String;
private platform:Platform;
private navController:NavController;
constructor(private barcodeScanner: BarcodeScanner,public navCtrl: NavController,platform:Platform) {
this.platform = platform;
this.navController = navCtrl;
}
doScan(){
console.log('scannig product barcode');
this.platform.ready().then(() => {
this.barcodeScanner.scan().then((result) => {
if (!result.cancelled) {
this.barcodeText = result.text;
this.scanningDone(this.barcodeText)
}
}, (error) => {
console.log('error when scanning product barcode');
});
});
}
scanningDone(data){
this.navController.push(TabsPage,{
data:data
});
}
main.ts 信息应该去哪里:
import { Component } from '@angular/core';
import { NavController, NavParams , ToastController} from 'ionic-angular';
import { BarcodeScanner } from '@ionic-native/barcode-scanner';
import { DetailsPage } from '../details/details';
import { Http } from '@angular/http'
@Component({
selector: 'main',
templateUrl: 'main.html'
})
export class MainPage {
information: any[];
item:any;
private bcData;
constructor(public navCtrl: NavController, private http: Http,public params:NavParams) {
this.bcData = params.get('data');
console.log(params.get('data'));
let localData = http.get(this.bcData).map(res => res.json().items);
localData.subscribe(data => {
this.information = data;
})
}
在 console.log(params.get('data'));它是我在控制台上获得未定义的地方。
使用localStorage怎么样
也看看 this
您可以在 TabsPage 中使用一个方法来处理打开和关闭页面,如下所示:
openPages(Page, Data){
this.navCtrl.push(Page,Data);
}
然后在你的scanningDone方法中:
scanningDone(data){
this.tabsPage.openPages(MainPage,{
data:data
});
}
嗨,我是 ionic 的新手,我正在尝试将扫描信息从一页传递到另一页,当我执行程序时,我有一个 console.log 来检查信息是否是它的正确传递但在 chrome 控制台上显示未定义,让我粘贴我的代码:
home.ts 我尝试从扫描中发送信息:
import { Component } from '@angular/core';
import { NavController,Platform } from 'ionic-angular';
import { BarcodeScanner } from '@ionic-native/barcode-scanner';
import { TabsPage } from '../tabs/tabs';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
private barcodeText:String;
private barcodeFormat:String;
private platform:Platform;
private navController:NavController;
constructor(private barcodeScanner: BarcodeScanner,public navCtrl: NavController,platform:Platform) {
this.platform = platform;
this.navController = navCtrl;
}
doScan(){
console.log('scannig product barcode');
this.platform.ready().then(() => {
this.barcodeScanner.scan().then((result) => {
if (!result.cancelled) {
this.barcodeText = result.text;
this.scanningDone(this.barcodeText)
}
}, (error) => {
console.log('error when scanning product barcode');
});
});
}
scanningDone(data){
this.navController.push(TabsPage,{
data:data
});
}
main.ts 信息应该去哪里:
import { Component } from '@angular/core';
import { NavController, NavParams , ToastController} from 'ionic-angular';
import { BarcodeScanner } from '@ionic-native/barcode-scanner';
import { DetailsPage } from '../details/details';
import { Http } from '@angular/http'
@Component({
selector: 'main',
templateUrl: 'main.html'
})
export class MainPage {
information: any[];
item:any;
private bcData;
constructor(public navCtrl: NavController, private http: Http,public params:NavParams) {
this.bcData = params.get('data');
console.log(params.get('data'));
let localData = http.get(this.bcData).map(res => res.json().items);
localData.subscribe(data => {
this.information = data;
})
}
在 console.log(params.get('data'));它是我在控制台上获得未定义的地方。
使用localStorage怎么样 也看看 this
您可以在 TabsPage 中使用一个方法来处理打开和关闭页面,如下所示:
openPages(Page, Data){
this.navCtrl.push(Page,Data);
}
然后在你的scanningDone方法中:
scanningDone(data){
this.tabsPage.openPages(MainPage,{
data:data
});
}