【发布时间】:2016-04-15 22:37:17
【问题描述】:
所以我有一个用于用户数据历史记录的 iron-list 元素。 铁列表不是自定义元素的一部分。它只是在页面上。我想在用户成功登录后填充。也许这只是我对聚合物的缺乏经验,但似乎没有一种直接的方法可以做到这一点。第一次尝试(为阅读而简化,例如我实际上并没有使用 jquery,我省略了很多错误处理代码等):
<iron-list as="item" style='height: 100%;' id='history-list'>
<template>
<div style='min-height: 140px;'>
<ul>
<!-- various fields for each record as list items -->
</ul>
</div>
</template>
</iron-list>
<script>
//once user is logged in
var items = $.getJSON('userhistoryscript');
//setAttribute doesn't work either
document.getElementById('history-list').items = items;
</script>
我发誓这适用于早期版本的 Polymer。但它现在似乎不起作用,这很好,但我需要一个替代方案。
我考虑过的一些替代方案:
-
在同一 DOM 范围内拥有 iron-ajax 元素并设置 ' 用户登录后触发的 URL xhr 请求。我不确定这是否可行。
-
将列表包装在自定义元素中并使用 根据 chrisW 的回答进行铁元查询。
那些选项是可怕的。我不敢相信没有更简单的方法来完成这一壮举。我如何有条件地根据用户输入获取数据并动态向页面添加一个铁列表(或更新一个已经存在的列表)?这个用例真的没有 API 吗?
更新
感谢您的回答。原来我的原始代码实际上工作正常:它实际上是一个构建过程问题。由于某种原因,当我通过 bower 安装项目依赖项时,没有安装 iron-list。我取出硫化导入(肯定也不包含对 iron-list 的引用)并直接导入所有元素,然后我得到 404 并弄清楚发生了什么。
【问题讨论】:
标签: javascript polymer-1.0 web-component