【问题标题】:Can ng-model update objects in the model?ng-model 可以更新模型中的对象吗?
【发布时间】:2016-02-28 11:01:00
【问题描述】:

我正在尝试使用 Angular 2 和 Typescript 编写数据条目,但在更新模型时出现问题。 据我了解,只有原始类型可以绑定到 ng-model。但是在我的模型中,我有想要更新的对象。 是否有任何角度特定的方法来执行此操作,而不是使用绑定到 ng-model 的已更改属性加载孔对象?

这是模型:

export class Project {
    public id: number;
    private title: string;
    private region: Region;
}

这是 Angular 组件类:

@Component({...})
export class ProjectForm {
    public project: Project;
    public regions: Array<Region>;
}

这是 ProjectForm 的视图:

...
<select id="region" [(ng-model)]="project.region.id">
    <option *ng-for="#region of regions" [value]="region.id">
        {{ region.name }}
    </option>
</select>

【问题讨论】:

    标签: angular angular2-forms


    【解决方案1】:

    是的!对象的属性可以与ngModel 绑定。见Plnkr

    因为,

    <input [(ngModel)]="project.region.id" />
    

    分解为

    <input [ngModel]="project.region.id"  (ngModelChange)="project.region.id = $event" />
    

    一样
    <input [value]="project.region.id" (input)="project.region.id = $event.target.value" >
    

    因此,正如您所见,它只是将值从一个地方传递到另一个地方,该值(原始或非原始)可以在任何地方。

    【讨论】:

    • 值得注意的是?.(Elvis 运算符)不能用于对象的双向绑定。至少目前没有。
    • @GünterZöchbauer 我不知道,谢谢分享:)
    • [ngModel]="project?.region.?id" 工作正常,但不支持 (ngModelChange)="project?.region.?id = $event"
    猜你喜欢
    • 2019-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-01
    • 2019-06-02
    • 2016-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多