【问题标题】:iron-list [first,last]VisibleIndex bindings don't work?iron-list [first,last]VisibleIndex 绑定不起作用?
【发布时间】:2017-03-14 00:05:38
【问题描述】:

我正在使用聚合物铁列表并尝试动态响应滚动以创建无限的信息列表。

我发现我无法让数据绑定在 firstVisibleIndex 和 lastVisibleIndex 属性上工作,也无法在这些属性发生更改时从这些属性中获取事件。

我将属性绑定到这样的变量:

  <iron-list id="list" items="[[items]]" as="item" first-visible-index="{{fvi}}" last-visible-index="{{lvi}}">
    <template>
      <div>
        <center>[[item.value]]</center>
      </div>
    </template>
  </iron-list>
  <p>binding: [[fvi]], [[lvi]]</p>

我可以滚动,在我的 plnkr 示例中,我还有一个使用 javascript 读取属性的计时器。主动读取的值是正确的。绑定值始终为 0。

我尝试使用事件来触发主动读取(on-first-visible-index-changed),但它没有触发。

有什么想法可以让 Iron-list 咳出这些属性吗?

在此处完成 plnkr:https://plnkr.co/edit/nY7amL?p=preview

【问题讨论】:

    标签: javascript data-binding polymer


    【解决方案1】:

    firstVisibleIndexlastVisibleIndex 实际上是只读的非声明属性,它们不会发出更改事件(这会阻止双向数据绑定和更改侦听器)。

    元素目录中列出的任何右侧没有 notifies 注释的属性是不可可观察的。例如,在iron-list 的文档页面中,您会注意到selectedAs 不会在右侧显示notifies,但selectedItem 会显示,这表明您可以将后者绑定到输出属性。

    【讨论】:

    • 嗯,这是一个有点微妙的文档说明。 :-P 关于在滚动发生时如何获取事件的任何建议?
    • Iron-list 不能发出滚动事件让我很困惑。这是疏忽,还是我希望它做一些不该做的事情?
    • 我确实设法让 iron-list 发出滚动事件。要么它没有很好的记录,要么我有一个盲点,但我发现我可以在 iron-list 上使用这个属性:on-scroll="_onScroll",并实现从 _onScroll 读取第一个和最后一个 visibleIndex 值。接受这个答案是因为 tony 正确地指出这些不是可绑定的属性。
    猜你喜欢
    • 1970-01-01
    • 2012-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 2011-03-20
    • 2015-08-18
    相关资源
    最近更新 更多