问题描述
我正在努力实现以下目标:
- 每当包含项目列表的下拉列表更新时,就会触发观察者函数。
- 添加新 ID 时,我们需要将相应的详细信息(在本例中为项目)添加到现有项目详细信息中,而不会覆盖现有详细信息。
- 我们目前所做的是将当前的
intialIds
与新更新的 ID 进行比较。 - 当前的问题是新更新的 ID 有时通常是字符串,但在一种情况下是数字。
- 如果初始状态为空并且只有一个 id 被更新,该 id 被设置为
number
,在其他情况下,id 将为string
。
到目前为止我拥有的代码示例:
_serviceTypeIdsObserver() {
if (this._contractAttributes.serviceTypeIds) {
var intialIds = this._contractAttributes.serviceTypeDetails.map((detail) => {
return detail.serviceTypeId
})
var desiredIds = this._contractAttributes.serviceTypeIds.split(",").map(id => parseInt(id.trim()));
var newIds = desiredIds.filter((id) => !intialIds.includes(id));
var items = this.serviceTypeItems.filter((item) => {
return desiredIds.includes(item.serviceTypeId.toString());
})
console.log('before',this._contractAttributes.serviceTypeDetails)
this.set('_contractAttributes.serviceTypeDetails',items);
console.log('after',this._contractAttributes.serviceTypeDetails)
}
}
我真的很感谢这方面的帮助。我觉得 polymer 有一种方法可以在不覆盖现有项目的情况下向现有项目添加新项目,只是不确定那是什么。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)