angular - 在带 Angular 选择中加载默认选项

标签 angular

我试图在我的选择中放置一个来自服务的默认选项。

我的选择。

<select (change)="changeValue()" [(ngModel)]="selectedValue">
<option *ngFor="let item of items" [ngValue]="item">{{ item.article }} - {{ item.value }}</option>
</select>

我传递给 ngFor 的数组.
  items: Array<any> = 
  [{ article: 'item1', value: 10 },{ article: 'item2', value: 20 }]

当我在我的应用程序中加载这个组件时,我从数据库收到一个包含这些选项之一的对象。

所以我想做的是,我收到的选项,将其设置为默认值。

我试过 [selected]但它不起作用。我该怎么做?

最佳答案

基本上你缺少这些东西:

  • ngValue应该是 item.value
  • 您已经分配了值,因此只需更改 selectedValue 变量即可,就像我在 ngOnInit 中所做的那样

  • 尝试这样的事情:

    typescript 结束:
      items: Array<any> =
        [{ article: 'item1', value: 10 }, { article: 'item2', value: 20, defaultSelected: true }];
      selectedValue: string = '';
      ngOnInit() {      
        this.selectedValue = this.items.filter(a => a.defaultSelected)[0].value;
      }
    

    HTML 结束:
    <select (change)="changeValue()" [(ngModel)]="selectedValue">
    <option *ngFor="let item of items" [ngValue]="item.value">{{ item.article }} - {{ item.value }}</option>
    </select>
    

    请查看此演示:https://stackblitz.com/edit/angular-v2a81r

    关于angular - 在带 Angular 选择中加载默认选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52846694/

    相关文章:

    css - 有什么方法可以在不清除现有类的情况下将类名从变量添加到 Angular2 中的宿主元素?

    javascript - 使用 RxJS Observables 的单次成功回调

    angular - Jenkins 运行 Cypress 测试以超时结束

    javascript - 使用combineLatest刷新列表: Angular2 + RxJS

    angular - 类型 'provideStore' 上不存在属性 'typeof StoreModule'

    javascript - 将 Typescript 2.3 模块发布到 NPM 以供 Angular 4 使用

    angular - 如何在运行时更改 NgModule 配置

    angular - 页面事件 Angular Material 2 上的分页器长度增加

    angular - 在 Angular 中添加图像文件

    angular - AOT编译-forRoot等func调用问题