Angular2选择框将对象作为字符串传递

时间:2016-09-16 12:15:38

标签: forms angular

我目前正在Angular2组件中构建一些功能,其中循环对象数组以创建表单选择框的选项。

我有这个工作,当选择框选项被更改时,我调用一个处理函数,我打算将所选的选项传递给。

我目前遇到的问题是我无法将对象从视图传递到控制器。该对象以字符串形式传递:

[object object]

这是我的代码:

视图:

        <div class='searchbar-wrapper'>
            <h5>MANUFACTURER</h5>
            <select class='manufacturers' #m [(ngModel)]="selectedManufacturer" (change)="changeManufacturer(m.value)">
                <option>-- please select --</option>
                <option *ngFor="let manufacturer of manufacturers" [ngValue]="manufacturer">{{manufacturer.name}}</option>
            </select>
        </div>

控制器:

changeManufacturer(manufacturer) {
    this.productsLoaded = false;
    this.selectedManufacturer = manufacturer;
    this.productPayload.manufacturer = manufacturer.id;
    this.getProducts();
}

正如您所看到的,我正在尝试将对象传递给控制器​​,但这不起作用。任何人都可以建议为什么它像字符串一样被传递?

Thankss

1 个答案:

答案 0 :(得分:1)

我设法让我的工作改变了以下几行:

<select class='manufacturers' #m [(ngModel)]="selectedManufacturer" (change)="changeManufacturer(m.value)">

为:

<select class='manufacturers' [(ngModel)]="selectedManufacturer" (ngModelChange)="changeManufacturer($event)">