[英]Cannot send to @component data from @page ionic2
我試圖用一個簡單的字符串從@Page到@Component進行通信,但值始終未定義-無法理解我在這里做錯了什么。
代碼.. @Page
<createnewqueueitem [qId]="currentQueueId"></createnewqueueitem>
import {CreateItemPage} from '../create-item/create-item';
import {iQueue, iQueueItem} from '../../models/queue';
import {QueueHeader, contentHeaders } from '../../common/headers';
@Page({
templateUrl: 'build/pages/queue-info/queue-info.html',
directives:[CreateItemPage]
})
export class QueueInfoPage {
queueItem: iQueueItem;
objQueue:iQueue;
currentQueueId:number;
currentQueueName:string;
queues: any;
constructor(public nav: NavController, private navParams: NavParams, private queueService: QueueService) {
this.nav = nav;
this.navParams = navParams;
this.queueItem = <iQueueItem>this.navParams.get('queueItem')
console.log(this.navParams.get('queueItem'));
this.currentQueueId = this.queueItem.id;
this.currentQueueName = this.queueItem.name;
this.queueService.fetchQueue(this.currentQueueId).then(data => {
this.objQueue = data;
this.queues = this.objQueue.items;
console.log(data);
// this.queues(data);
});
}
createItem(queueId){
this.nav.push(CreateItemPage, {
queueItemId: queueId
});
}
}
這是我的@Component
import {IONIC_DIRECTIVES} from 'ionic-angular';
import {Component, Input} from '@angular/core';
@Component({
selector: 'createnewqueueitem',
template: `
<ion-list>
<ion-list-header>
ADD ITEM TO QUEUE
</ion-list-header>
<ion-item>
<ion-label floating>Item name</ion-label>
<ion-input type="text"></ion-input>
{{qId}}
</ion-item>
<button (click)="saveItem()">Save to queue
</button>
</ion-list>
`,
directives: [IONIC_DIRECTIVES]
})
export class CreateItemPage {
@Input() qId: string;
constructor() {
console.log(this.qId);
alert(this.qId);
}
saveItem(){
}
}
我試圖像這樣並且也以這種方式將數據發送到@Component
錯誤在哪里?
真奇怪-在我待了很長時間之后...我找到了答案。
ngOnInit() {
console.log(this.qId);
alert(this.qId);
}
似乎在嘗試在構造函數中讀取值時未設置值,可能要早設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.