Angular:更新<select>数组选项,并保留选定的值

时间:2017-05-23 00:36:28

标签: angular

关于&lt; select&gt;的问题+更新选项数组。我想要更新可用的选项 - 但如果它仍然可用,则保留当前值。 我发现NG在认为对象是新的(如图)时会创建一个新的索引 - 它不再匹配所选的选项(在代码中似乎是原始的 - 但不是视图)。 因为我想为每个实际的更改触发一个API事件 - 我想避免在处理过程中触发任何中间步骤的请求... 我创建了一个示例plnker:https://plnkr.co/edit/VYYTvZ?p = preview 主要部分是: 选择框非常简单: &LT;选择   [(ngModel)] = “selectedOption” &GT;   &LT;选项     * ngFor =“let options of optionsList”     [ngValue] = “option.value” &GT;       {{option.name}}   &LT; /选项&GT; &LT; /选择&GT; 这是我更新选项数组的示例代码。 (执行克隆是为了模仿带有新对象的API ...) public get selectedOption():string {     return this._selectedOption;   }   public set selectedOption(value:string){     //这是一个模拟器,可以在每次更改时发出API请求...     this.logUpdates.push(`Updated:'$ {value}'`);     this._selectedOption = value   }   私人名单1 = [     {name:'one',value:1},     {name:'two',value:2},     {name:'three',value:3},     {name:'four',value:4}     ]。   private list2 = [     {name:'two',value:2},     {name:'four',value:4},     {name:'six',value:6},     {name:'eight',value:8}     ]。   public loadList1(){     let clone = this.list1.slice(0);     this.optionsList =克隆   }   public loadList2(){     let clone = this.list2.slice(0);     this.optionsList = clone;   } 我想知道正确的解决方案是否更新阵列? (是否有一个工具/功能可以帮助这个?)或保存+恢复值(并以某种方式阻止它发出太多的API请求)?或者我只是选择/选项错误? 谢谢。

0 个答案:

没有答案