在项目中使用nz-select选择框,前段代码如下。选中了几个选项,保存所选值
<nz-select nzMode="multiple" style="width: 100%" nzPlaceHolder="请选择文章标签" [(ngModel)]="tagIdList">
<nz-option *ngFor="let option of selectTags" [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
</nz-select>
selectTags=[{id:1,name:"aa"},{id:2,name:"bb"},{id:3,name:"cc"},{id:4,name:"dd"}] tagIdList=[1,2,3]
最初获取已选中的值代码如下,但是结果是选择框中什么都不显示,当手动选中一个选项后tagIdList的选中项都显示出来了
let self = this;
this.tagService.tagDetail().subscribe(res => {
let tagsTemp = res.responseBody.tags;
if( tagsTemp && tagsTemp.length > 0){
let selectTagList = [];
tagsTemp.forEach(function (tag) {
self.tagIdList.push(tag.id);
})
}
})
后来修改成下面代码,正常显示出结果。注意self.tagIdList的赋值方式,上面是依次push值,下面是一次性赋值。
let self = this;
this.tagService.tagDetail().subscribe(res => {
let tagsTemp = res.responseBody.tags;
if( tagsTemp && tagsTemp.length > 0){
let selectTagList = [];
tagsTemp.forEach(function (tag) {
selectTagList.push(tag.id);
})
self.tagIdList = selectTagList;
}
})