2017-06-28 50 views
4

Im新的Angular2和Im試圖從輸入添加一個新項目到列表中。但是,然後點擊提交我而不是文本[對象對象]。Angular 2從輸入中添加新項目

這裏是我的代碼:

app.component.html

<form (submit)="addItem(item)"> 
    <md-input-container> 
     <input [(ngModel)]="name" mdInput placeholder="add" name="addNew"> 
    </md-input-container> 
     <button type="submit" md-icon-button> 
      <i class="material-icons">send</i> 
    </button> 
    </form> 

app.component.ts

items = Players; 
name; 

addItem(name): void { 
     this.items.push(new Player({ 
      name : name 
     })); 
    } 

player.ts

export class Player { 
    id: number; 
    name: string; 
    count: number; 

    constructor(name){ 
     this.id; 
     this.name = name; 
     this.count = 0; 
    } 

所有播放器.ts

export let Players: Player[] = [ 
]; 

謝謝你的答案

回答

0

我會寫一個完整的答案。

在您的組件(TS文件):

items = Players; 
name; 

addItem() { this.items.push(new Player({ name : this.name })); } 

在HTML:

<form (submit)="addItem()" novalidate> 
    <md-input-container> 
     <input [(ngModel)]="name" mdInput placeholder="add" name="addNew"> 
    </md-input-container> 
    <button type="submit" md-icon-button> 
     <i class="material-icons">send</i> 
    </button> 
</form> 

我上的猜測是,您提交表單2倍。

+0

嗯你是對的,但更改後的按鈕類型我仍然得到[對象對象] –

+0

在什麼?輸入或您的播放器? – trichetriche

+1

無論如何,使用我的代碼,你的問題將會消失。這裏的問題是,你的方法addItem要求一個參數,你叫做name。但在你的HTML,你發送的項目!您可以刪除參數並按照我的寫法操作,也可以發送名稱而不是項目。在這兩種情況下,你都不會有任何問題。 – trichetriche

相關問題