Angular Material 2.0.0-beta.8中md-select初始值设置问题
在Angular Material 2.0.0-beta.8中为设置默认选中项
我懂你在这个旧版本Angular Material里遇到的
确保ngModel绑定值的类型严格匹配
这个版本的<md-select>对值的类型匹配要求很严格,你的items是数字数组[1,2,3,4,5,6],那绑定的ngModel初始值必须是数字类型的4,不能是字符串"4"。先在组件类里定义好变量:
items = [1, 2, 3, 4, 5, 6]; selectedAmount = 4; // 这里一定要是数字,和items里的元素类型一致然后修改模板代码,绑定ngModel:
<md-select [(ngModel)]="selectedAmount"> <md-option *ngFor="let amount of items" [value]="amount"> {{amount}} </md-option> </md-select>别忘了导入Forms模块
这个版本里使用[(ngModel)]必须在你的模块中导入FormsModule(模板驱动表单)或者ReactiveFormsModule(响应式表单),否则ngModel不会生效。示例模块配置:import { NgModule } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { MdSelectModule } from '@angular/material'; @NgModule({ imports: [ // 其他必要模块 FormsModule, MdSelectModule ], // 组件、声明等 }) export class YourComponentModule { }异步数据的额外处理
如果你的items是通过异步请求获取的(比如HTTP请求),那要确保在数据加载完成后再给selectedAmount赋值。比如在订阅数据的回调里设置初始值,避免组件渲染时items还没加载完成,导致找不到对应的<md-option>。
内容的提问来源于stack exchange,提问作者Sören
相关产品推荐
相关产品推荐

