关于< select>的问题+更新选项数组。我想要更新可用的选项 - 但如果它仍然可用,则保留当前值。
我发现NG在认为对象是新的(如图)时会创建一个新的索引 - 它不再匹配所选的选项(在代码中似乎是原始的 - 但不是视图)。
因为我想为每个实际的更改触发一个API事件 - 我想避免在处理过程中触发任何中间步骤的请求...
我创建了一个示例plnker:https://plnkr.co/edit/VYYTvZ?p = preview
主要部分是:
选择框非常简单:
<选择
[(ngModel)] = “selectedOption” >
<选项
* ngFor =“let options of optionsList”
[ngValue] = “option.value” >
{{option.name}}
< /选项>
< /选择>
这是我更新选项数组的示例代码。 (执行克隆是为了模仿带有新对象的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请求)?或者我只是选择/选项错误?
谢谢。