带有ngFor的Angular2输入

时间:2017-06-30 07:33:09

标签: angular input ionic2 ngfor

大家好我想将选项数据从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作为新的角度和这个问题

谢谢。

1 个答案:

答案 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管道中没有构建。

被修改