手动选择铁列表项时出错

时间:2016-06-04 00:53:36

标签: javascript polymer

  • 聚合物1.4.0
  • iron-list 1.3.1

单击某个元素时,我手动触发选择项目。只要我的铁列表上有selection-enabled multi-selection个属性,这就可以正常工作。但是,我想删除它们,因为相关的事件处理程序(选择点击)会干扰我的。当我这样做时,我得到polymer.html:3942 Uncaught TypeError: userArray.slice is not a function

某些记录显示_itemsChanged正在执行此操作 Polymer.Collection.get(this.items)期望链中的所有项目的数组,但只是将所选项目作为对象。所以我发现了问题,但我不知道为什么会发生这种情况或者如何解决它。

它看起来像selection-enabled这样的代码只是添加处理程序。这是一个错误的假设吗?是否总是需要做选择?我的功能可能有问题吗?

这是我的select函数,改编自this post's jsbin中的_selectItem函数:

toggleSelect: function(e) {
  this.$.itemsList.toggleSelectionForItem(e.model.item);
},

我道歉,因为这个问题有点匆忙。我稍后会尝试提供一个小提琴。

2 个答案:

答案 0 :(得分:1)

尝试更改selectedItem属性,而不是调用方法toggleSelectionForItem。从这个方法的描述看来,它与多选属性更相关。

答案 1 :(得分:0)

解决方案

原始帖子中的代码是正确的,解决方案是使用multi-selection但不使用selection-enabled

解释

由于toggleSelectionForItem似乎依赖于multi-selection并且selection-enabled触发了不需要的选择,因此我们只需删除selection-enabled即可获得所需的行为。