将项目推入数组后如何清除输入字段?

how to clear input field after pushing item on array?

我做了一个简单的例子 angular 2.我在数组中添加了item。当用户键入任何内容并按下按钮时,它会被添加到数组中并显示在列表中。

我面临两个问题

这是我的plunker code

<ion-navbar *navbar>
  <ion-title>
    Ionic 2
  </ion-title>
</ion-navbar>

<ion-content class="has-header">
 <ion-list style="border:2px solid grey;height:500px">
  <ion-item *ngFor="#item of Todo">
{{item.name}}
  </ion-item>
</ion-list>
<label class="item item-input">
  <span class="input-label" >Add Todo</span>
  <input type="text" #todo placeholder="Add todo" >
</label>
</ion-content>

<ion-footer-bar (click)="addItem(todo.value)">

  <h1 class="title" style='color:red'>Add Todo!</h1>

</ion-footer-bar>

您可以通过执行以下操作来清除输入字段。

Home.html

前一个代码

<ion-footer-bar (click)="addItem(todo.value)">

  <h1 class="title" style='color:red'>Add Todo!</h1>

</ion-footer-bar>

更改代码

<ion-footer-bar (click)="addItem(todo)">

  <h1 class="title" style='color:red'>Add Todo!</h1>

</ion-footer-bar>

修改home.ts中的addItem函数,如下所示。

addItem(v){
      this.Todo.push({name:v.value})
      v.value='';
    }

希望这能为您解决所面临的问题。还有很多其他方法。既然你是从id中获取值,我就以此为基础给出了解决方案。

updated plunker code below

http://plnkr.co/edit/oCxrgxNlCkjVnTrhZGQA?p=preview

删除问题的答案。

而不是这个

deleteTodo(obj){
      alert('----');
      var index =  this.Todo.indexOf(obj);
  this.Todo.splice(index, 1); 
    }

关注这个

    deleteTodo(name){
      var index =  this.Todo.indexOf(name);
  this.Todo.splice(index, 1); 
    }

希望对您有所帮助。

除了清除函数中的值,您还可以像这样对单击事件执行操作:-

<ion-footer-bar (click)="addItem(todo.value);todo.value = ''">

  <h1 class="title" style='color:red'>Add Todo!</h1>

</ion-footer-bar>

Working Plunker