Polymer 2.0 - dom-repeat - 将新的 itemId 添加到现有的 itemId 而不覆盖现有的 id 详细信息

问题描述

我正在努力实现以下目标:

  • 每当包含项目列表的下拉列表更新时,就会触发观察者函数
  • 添加新 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 (将#修改为@)