2017-08-11 74 views
1

參考模板輸入變量「英雄」你怎麼可以參考模板輸入變量hero*ngFor="let hero of heros" 內打字稿?你怎麼能由* ngFor =「讓英雄的英雄」裏面的打字稿

我使用狀態組件 因此代碼有本作的「英雄」相當於在我的代碼是:

servers: Server[]; 

當屏幕通過ionViewDidLoad它第一次出現被填充。

當我通過底部的按鈕添加服務器時,ionViewDidEnter調用相同的加載方法來再次填充服務器。

調試時我要通過ionViewDidLoad路徑。

Chrome showing app with data Template code with *ngFor and Event Handler

[

+0

你要哪一個?每個'ngFor'條目都會有許多'hero'變量 –

+0

@Maximus - 我選擇編輯的那個... – JGFMK

+1

問題是你正在訪問* ngFor – brijmcq

回答

0

根據Ionic文檔。 on ionic-item-sliding you need to nest < ion-item-options > outside < ion-item >

它最終成爲我把* ngFor放在錯誤標籤上的一個例子。

謝謝兩位@Sajeetharan@brijmcq。 你的帖子最後都把我寫下了寫道。

的Html

<ion-item-sliding *ngFor="let server of servers"> <! <<<-- Moved here --> 
    <ion-item detail-push> 
     <h1>{{server?.server}} </h1> 
     <h2>{{server?.port}} </h2> 
     <h2>{{server?.username}}</h2> 
     <h2>{{server?.password}}</h2> 
     </ion-item> 
     <ion-item-options side="left"> 
     <button ion-button color="primary" 
       (click)="editServerConfigPage(server)"> 
      <ion-icon name="redo"></ion-icon> 
      Edit 
     </button> 
     <button ion-button color="danger"> 
      <ion-icon name="remove-circle"></ion-icon> 
      Remove 
     </button> 
     </ion-item-options> 
</ion-item-sliding> 

打字稿

editServerConfigPage(server:Server):void { 
    console.log('editServerConfigPage()', server); 
    this.navCtrl.push('LoginDetailPage', {server: server}); 
} 
2

也許你可以把它傳遞函數

<div *ngFor="let hero of heros"> 
    <li click="print(hero)">{{hero}}</li> 
</div> 

和TS裏面裏面,

print(hero:Hero){ 
console.log(hero.name); 
} 
+0

以外的服務器變量嗎? – Sajeetharan

+0

其實英雄未定義。我真的需要{{英雄}}才能使它工作嗎? – JGFMK

+0

是的,你需要它,否則你怎麼能通過它 – Sajeetharan

0

您正在訪問的server變量OU *ngFor循環的倒數,這就是爲什麼你得到的價值是未定義的,因爲服務器變量在ion-item以外是未知的。嘗試在<ion-item>中插入代碼ion-item-options,它應該可以工作