在 AngularDart 中如何使用 select 元素的 onchange 事件来传递对象而不是字符串?

How do I use a select element's onchange event to pass an object instead of a string in AngularDart?

这是我想要完成的。

<select (ngModelChange)="addChild($event)">
    <option>Add</option>
    <option [value]="null">New Item</option>
    <option *ngFor="let child of menuItem.children" [value]="child">
        {{child.title}}
    </option>
</select>

编译时,addChild 方法没有被调用。 VSCode 报告 "The bound output ngModelChange does not exist on any directive or on the element" - 那么我需要添加什么指令?

尝试将第一行更改为:

<select (change)="addChild($event)">

这应该可以完成工作。

您可能还会发现在预期的位置打印字符串而不是完整的对象很方便:

<option *ngFor="let child of menuItem.children" [value]="child.id">

可能(或可能不):

<select (ngModelChange)="addChild(child.id)">

当然,如果它更适合您并且您有合适的 属性。 YMMV.

AngularDart 的 SelectElement 仅支持字符串作为值。如果您想传递任意对象,您将需要使用不同的组件 - 一个支持此类功能的组件。