首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何知道iron-list何时完成了html的创建

如何知道iron-list何时完成了html的创建
EN

Stack Overflow用户
提问于 2016-07-07 07:34:20
回答 2查看 342关注 0票数 2

背景

我正在创建一个聚合物铁列表,并通过直接设置items属性来填充该列表,如下所示:document.getElementById('itemsList').items = data;

当用户更改类别时,我会以上述方式更改items的值(使用ajax检索)。这可以完美地工作,但我现在需要根据我的列表类别更改select中的选项。我可以使用模板来实现这一点,但它很麻烦,甚至在以后当选项需要是动态的时候也不会起作用。

我想用JavaScript简单地隐藏某些选项,但是在执行.items = data之后,我想要操作的select不会立即出现。我需要一个回调或者其他方法来检测iron-list何时完成了插入超文本标记语言。

研究

我浏览了文档,除了iron-resize之外,找不到任何对回调或事件的引用,这看起来没有什么帮助。

我可能会通过监听DOMNodeInserted事件来解决这个问题,但这可能比我已经得到的解决方案更糟糕。

setTimeout也可以工作,但也不是一个好的解决方案。

来自宫本:我可以在铁名单上检查_itemsRendered,它被设置为真,但我可能需要做setInterval来检查,也不好。

问题

是否有任何形式的回调,让我知道何时iron-list完成创建超文本标记语言?如果失败了,可能是一个事件或其他我可以用来知道它何时完成的东西?

更新:

答案似乎是dom-change事件,但现在它似乎并不总是触发。请参阅Polymer iron-list does not always fire dom-change event

EN

回答 2

Stack Overflow用户

发布于 2016-07-08 04:59:49

那就像这样。computed bindings computeItemscomputeOptions会随着前者的datalistCategory更改或后者的itemlistCategory更改而更新它们的值。这使得聚合物可以为我们管理所有的数据绑定:你只需要提供一些函数来计算它。

代码语言:javascript
复制
<dom-module is="some-element">
<iron-list items="{{computeItems(data, listCategory)}}">
     <template>
          <select>
              <template is="dom-repeat" items="{{computeOptions(item, listCategory)}}" as="option">
                  <option value="{{option.value}}"></option>
              </template>
          </select>
     </template>
</iron-list>
</dom-module>

<script>
 Polymer({
    is: "some-element",
    properties: {
        data: Array,
        listCategory: String
    },
    computeOptions: function(item, listCategory){
        return item.options.filter(e=>e.category === listCategory)
    },
    computeItems: function(data, listCategory){ 
        return data.filter(e=>e.category === listCategory)
    }
 })
 </script>
票数 1
EN

Stack Overflow用户

发布于 2016-07-13 08:37:43

我们目前正在尝试一条不同的路线,但如果其他任何人需要完成这一点,看起来dom-change事件应该会告诉您。

更新:

这并非在所有情况下都有效,请参阅Polymer iron-list does not always fire dom-change event

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38235474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档