angular - 选择上的 ngModel 不显示初始值、默认值

标签 angular select ngmodel

我有以下 Angular 代码:

comp.html

<select [(ngModel)]="selectedBanner" (change)="onBannerChange()">
                    <option *ngFor="let banner of banners" 
                    [ngValue]="banner">{{banner.BannerDesc}}</option>

                </select>

comp.ts

    public banners: any[] = [
        {BannerId: 1, BannerDesc: 'AAAA'},
        {BannerId: 2, BannerDesc: 'BBBB'},
        {BannerId: 3, BannerDesc: 'CCCC'},
        {BannerId: 4, BannerDesc: 'DDDD'},
    ];
    public selectedBanner: any = {BannerId: 3, BannerDesc: 'CCCC'};
    onBannerChange() {
        console.log(this.selectedBanner);
    }

但是,在加载时,选择下拉列表始终为空白。只有当我改变时,它才会获得值(value)。如何在加载时设置默认值?

我正在使用 Angular 4.0.0

最佳答案

尝试将值存储在另一个服务中,然后在加载应用程序时将其默认为该值时,您将面临的问题是,从 Angular 来看,它们并没有指向内存中完全相同的对象.

您需要按如下方式稍微更改 ngOnInit 方法。

  1. 根据 BannerId 等键在您存储的横幅数组中找到对象的索引。
  2. 之后,您可以使用相同的方式设置所选选项 this.selectedBanner = this.banners[bannerIdIndex].

通过这样做,您将能够获得指向您在 ngFor 中使用的列表中正确对象的 Angular

关于angular - 选择上的 ngModel 不显示初始值、默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44292069/

相关文章:

java - 不知道如何转换为字符串并打印 ResultSet、SELECT 语句

mysql - 如何根据特定列值仅选择最后一个条目,保持当前表顺序

javascript - Angular : ng-model as a number

angular - [ngModel] 的数据绑定(bind)不适用于 Angular 6

Angular 2 loadChildren 不与 canActivateChild 一起工作

angular - 在 Angular 中的 SPA 应用程序上的 Microsoft Azure AD 身份验证中,根据客户端信用获取访问 token 时出现 CORS 错误

javascript - Angular2 RC5导入第3方JS库: Showdown

angular - 在 Angular 2 上更改服务器端口

SQL Select 语法解决方法

javascript强制更新输入框上的ng-model值