Javascript 角度2从输入添加新项目

Javascript 角度2从输入添加新项目,javascript,angular,typescript,input,Javascript,Angular,Typescript,Input,我是Angular2的新手,我正试图从input向列表中添加一个新项目。但是,单击以提交我,而不是文本[object] 这是我的密码: app.component.html <form (submit)="addItem(item)"> <md-input-container> <input [(ngModel)]="name" mdInput placeholder="add" name="addNew"> </md-inp

我是Angular2的新手,我正试图从input向列表中添加一个新项目。但是,单击以提交我,而不是文本[object]

这是我的密码:

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>
player.ts

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

    constructor(name){
        this.id;
        this.name = name;
        this.count = 0;
    }
全能运动员

export let Players: Player[] = [
];

谢谢你的回答

我会写一个完整的答案

在组件(TS文件)中:

在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>

发送

我猜你提交了两次表格

嗯,你是对的,但是在改变了按钮的类型之后,我仍然在什么地方得到[object]?输入还是你的播放器?不管怎样,使用我的代码,你的问题就会消失。这里的问题是,您的方法addItem要求一个参数,即您调用的名称。但在你的html中,你可以发送邮件!要么删除参数并按照我写的操作,要么发送名称而不是项。在这两种情况下,您将不再有任何问题。
items = Players;
name;

addItem() { this.items.push(new Player({ name : this.name })); }
<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>