我正在使用Rxjs来获取我的结算计划。我想在选择输入中设置它们。
目前,我正在使用ng2-select2来展示这些计划。
首先,我需要从服务器获取计划:
this.serverService
.list()
.subscribe(
(result: any) => {
for (let plan of result)
this.plans.push({id: plan.id, text: plan.name});
},
(error: any) => {
}
);
,其中this.plans
是我的angular2组件的Array<Select2OptionData>
字段。
因此,select2
绑定到this.plans
:
<select2 id="default-select"
(valueChanged)="select2Changed($event)"
[data]="plans" <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
[width]="250"
[theme]="'bootstrap'">
</select2>
尽管如此,我还不太了解WHEN和如何初始化this.plans
字段。
constructor
?在ngOnInit
上,在另一个函数上?我希望我解释得那么好。
答案 0 :(得分:0)
您可以在定义变量时对其进行初始化:
private data: Array<Select2OptionData> = [];
这样您就可以等待服务返回数据了。
我注意到的一点是,您对服务的订阅可能会导致数据数组中的重复条目,假设observable始终发出完整的选项列表。但是,我不知道你的实现是否就是这种情况。