如何在ngModelChange angular 2上传递对象作为参数

时间:2017-03-27 14:34:29

标签: angular angular2-ngmodel

注意:我刚刚开始使用角度.. 好的,这就是我所拥有的:

<select class="form-control custom-select"
      [(ngModel)]=package
      (ngModelChange)="bindPackageCount(package)"
      formControlName="packagingProfile">
       <option *ngFor="let package of createdPackageData"
               [value]="package.count">
               {{package.package.name}} - {{package.type.name}}
       </option>
 </select>

通过提供package.count作为select标签的[value],我可以绑定它并将其作为param传递给bindPackageCount。我想要做的是将完整的包(对象)作为参数传递,而不仅仅是package.count(数字)。但是,当我这样做时

bindPackageCount(package) {
    // package resolves to [Object object]
}

来自其他人的问题..是的,这是一种反应形式,这是它的创造:

createPackagingForm() {
    this.packagingForm = this._fb.group({
        packagingProfile: ['', Validators.required]
    });
}

任何想法? THX

2 个答案:

答案 0 :(得分:1)

由于您使用的是被动表单,因此无需使用ngModelngModelChange。将使用formControlName捕获更改。根据我的理解,您希望将整个package对象绑定到表单,这可以通过使用[ngValue]来实现,而[value]<select formControlName="packagingProfile"> <option *ngFor="let package of createdPackageData" [ngValue]="package"> {{package.name}} - {{package.type}} </option> </select> 绑定整个对象。所以你的选择看起来像这样:

packagingProfile

使用它,您可以将整个对象存储在formcontrol -lboost_asio

<击> DEMO

NB,断开链接

答案 1 :(得分:0)

您可以使用选项的click事件并获取此类的包值

    var dt = new Date('2017-03-27');