大家好我想将选项数据从ngFor发送到Ts文件但是我试过[attr.value],(ngModelChange)(更改)所有这些只发送数据的名称我想发送所有数据来来自ngFor
HTML
<select [(ngModel)]="event"
class="selectpicker show-menu-arrow form-control show-tick"
data-style="btn-primary" (change)="doSomething(event)">
<option *ngFor="let event of events|filter:search"
EventInput="{{event}}"
[attr.value]="event2">
{{event.eventName}}
</option>
</select>
TS
@Input('EventInput') EventInput: any;
doSomething(event) {
console.log("optValue: ", event);
//this.eventDetailsPageSend(event);
console.log("input: ", this.EventInput);
}
optValue只是事件的名称,但我需要所有数据,如id等(如何来自ngFor),以便我可以推送另一个页面。我不知道我是否应该使用Input或ngModelChange作为新的角度和这个问题
谢谢。
答案 0 :(得分:3)
我不知道你在说什么&#34;我想将选择数据从ngFor发送到Ts文件&#34;。所以我会假设你想要的东西;]。
如果您要设置value
标记的<option>
,则应该执行
<select (change)="changed()" [(ngModel)]="selected">
<option value=""></option>
<option *ngFor="let event of events" [ngValue]="event">
{{event.name}}
</option>
</select>
在组件中添加
public selected = {};
public changed() {
console.log(this.selected);
}
不要忘记在AppModule FormsModule
@NgModule
此外,我不知道您的@Input
装饰器设置在何处,但您只能通过@Input
- &gt;的Parent
属性共享数据。 Child
组件,另一件事是在Angular2 / 4中,filter
管道中没有构建。
被修改