【发布时间】:2016-07-08 22:49:53
【问题描述】:
我正在使用 Angular 2 RC4。
我创建了一个下拉选择元素,它绑定到我的组件中的一个变量,并使用*ngFor为此选择创建选项,如下所示:
<select id="role-select" class="form-control" [(ngModel)]="foo.bars" multiple>
<option *ngFor="let bar of bars">{{bars}}</option>
</select>
bars 变量是动态填充的:
ngOnInit(){
this._service.GetBars().subscribe(
result => {
this.bars = result;
},
err => {
console.log(err);
},
() => {}
);
}
我还动态填充了foo.bars 变量:
constructor(public _service: Service){
_service.GetFooBars()
.subscribe((data) => {
this.foo.bars = data;
},(err) => {
console.log(err);
}, () => {
// done
});
}
现在我要做的是在与foo.bars 中的bars 匹配的任何选项上将selected 属性设置为true。
目前我使用这个:
var roleSelect = document.getElementById("role-select");
this.foo.bars.forEach((v,i) => {
for (var j = 0; j < roleSelect.options.length; j++) {
if (roleSelect.options[j].text === v) {
roleSelect.options[j].selected = true;
}
}
});
这工作得很好,但是转译器会抛出错误,说 HTMLElement[] 上不存在选项,我想要一个更强大的解决方案。
任何想法都值得赞赏。
【问题讨论】:
标签: javascript angularjs typescript angular