[英]how to share data between two component using Event Emitter?
当您在输入字段中输入内容然后enter
press时,您能否建议如何在列表中添加项目。但这是不同的组件。我想使用@Input,@ Output,EventEmitter将输入字段的值共享给其他组件。
我组成一个组件。 <todo></todo
>
这是ts文件
import { Page,NavController,Modal } from 'ionic-angular/index';
import { Component, Input, Output, EventEmitter} from 'angular2/core';
@Component({
selector:'todo'
templateUrl:"addtodo.html",
})
export class AddToDO{
constructor() {
}
addItem(v){
alert(v.value)
}
}
这是我的html
<label class="item item-input">
<span class="input-label" >Add Todo</span>
<input type="text" #todo placeholder="Add todo" (keyup.enter)="addItem(todo)">
</label>
我想在按Enter时添加项目列表。因此需要在组件之间共享数据
我会在您的AddToDO
组件中利用@Output
来触发添加了元素。 因此,您可以从父组件中捕获它,并将相应的数据添加到列表中。
@Component({
selector:'todo'
templateUrl:"addtodo.html",
})
export class AddToDO{
@Output()
todoAdded:EventEmitter = new EventEmitter();
constructor() {
}
addItem(v){
alert(v.value)
this.todoAdded.emit(v);
}
}
并在父组件模板中:
<todo (todoAdded)="addTodoInList($event)"></todo>
这是addTodoInList
方法的内容:
addTodoInList(todo) {
this.Todo.push(todo);
}
请参阅以下代码: http ://plnkr.co/edit/mQtQIXIJwMfJSfNVHvac?p=preview。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.