问题标签 [dom-repeat]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
binding - dom-repeat 内的聚合物类绑定不起作用
我正在尝试将计算值绑定到 dom-repeat 模板中的元素。
我的目标是在用户选择其中一项时更新下拉项样式。发生这种情况时,我selectedItems
通过将项目值推送给它来更新数组。这将触发选择框的呈现,但将无法调用_itemClass(selectedItems)
表达式。
我在这里想念什么?我在文档中读到,您必须指定将触发绑定的属性,我通过将 添加selectedItems
到绑定表达式来做到这一点,根本没有运气。
我附上了一个带有当前行为的片段。
欢迎任何帮助。
javascript - 来自 Firbease 的数组被解释为具有 dom-repeat 的 Polymer 中的对象
我dom-repeat
在 Polymer 中使用重复从 Firebase 加载的数组,但我无法弄清楚为什么会出现“项目的预期数组,找到对象”错误,如下面的屏幕截图所示。这是我正在使用的代码:
浏览器视图和控制台
data-firebase是我创建的一个元素,它从 FB 加载数据,正如您在控制台中成功看到的那样(2 个对象的数组是我想要加载的
加载前的空数组 我检查了加载前我拥有的对象中是否有一些非数组数据,但正如您在控制台中看到的那样,它只是一个空数组。如果我停止从 Firebase 加载数据,也没有错误
Firebase中有意义的数组 我也查了FB中的数据,它表示为一个JSON数组(可以看到导出数据的时候,数据导出在数组括号[]中)
问题:数据已加载但错误仍然 存在 dom 重复怎么会发生(如您所见已呈现)并且在控制台中还有一个数组,但我仍然收到此错误?
非常感谢!
亲切的问候,蒂姆
polymer - 跟踪 dom-repeat 创建的子节点,除了添加/删除之外的更新
我有一个应该跟踪其子节点中的信息的主机组件。子节点是使用 dom-repeat 创建的:
我可以跟踪 dom-repeat 添加或删除的节点:
items
但是 dom-repeat 会在其更改时回收现有节点。因此,例如,当data
从[a,b]
to更改时,[c,d]
它将重用两个现有节点,因此不会调用 _nodesChanged。
主机组件知道回收的子节点何时更新的好方法是什么?宿主组件应该能够在不知道子组件内部工作原理的情况下这样做(封装原则)。
polymer - 聚合物进料值进入第二个 dom-repeat
我正在尝试在 dom-repeat 中使用 dom-repeat 在 json 数组中的 json 数组上。如何将第一个数组中的值传递给第二个 dom-repeat?
为了说明,我有以下加载正常的 json 数组:
我正在遍历数组“书籍”并检索标题和简介。然后在下面,我希望列出每本书的两位作者,并且我还想要以 /slug/author (fi /b1/author1) 格式的每个作者的链接。但是因为在第二个 dom-repeat 我重新定义了“项目”,“slug”不再可用。我该怎么做?
我对 Polymer 也很陌生,所以感谢您帮助我学习!
javascript - 聚合物:dom-repeat 像元素的局部变量
我想创建一个控件,将数据转换为我需要的东西。
目前,我用一个全局变量来解决这个问题。代码看起来像这样:(小写功能只是为了以简单的方式演示它。通常我想将它用于对象数组。例如,获取某些名称和 id 的不同值)
用法:
如果我只使用该变量lower
一次,此解决方案效果很好。在 a 内部<dom-repeat>
,我遇到了问题。
如何轻松制作仅在内部可用的自定义变量my-tolower
?和Polymer的dom-repeat
完全一样吗?
我查看了Polymer 的<dom-repeat>
源代码,但我不知道它是如何工作的。这甚至可以在自定义元素中实现吗?我需要创建自定义模板吗?
为了更好地解释我的问题,我添加了一个更大的示例来详细解释我的问题。
javascript - 当使用 .innerHTML 添加 HTML 块时,使聚合物 dom-repeat 工作
我正在开发一个聚合物应用程序,我需要从外部文件中获取一些 HTML 代码块并附加到活动文件中。我已经指定了要自己添加的内容。
下面是代码
当我循环celsius
使用 dom-repeat 时,它工作正常。但是如果使用document.getElementById("content").innerHTML
它的给定添加相同的代码
Polymer::Attributes: 无法将数组解码为 JSON 警告。
如何解决这个问题。
polymer - 聚合物 dom-repeat 不显示动态添加的值
聚合物 dom-repeat 未按预期工作,当我动态地将新元素添加到数组时,dom-repeat 不显示该值。
将项目推入数组时,我正在使用 Polymer 的数组变异方法,但仍然无法正常工作。
请检查codepen链接;
polymer - Polymer 在立即进行脏检查和分配后执行完整的 dom-repeat
我有一个包含子属性的数组,子属性又是对象和子数组。
当我从服务器获得 API 响应时,我曾经使用 dom-repeat 显示该响应,并且当我获得另一个相同格式的 API 响应且其值发生微小变化时,我将用脏检查的新数组替换旧数组像
但是当我这样做时,只有一些纸质列表会更新其值已更改,dom-repeat 不会创建所有节点,它只会更新那些值已更改的节点。
当我像这样清除数组时.arr = []; 在这种情况下,它将销毁所有节点,
但如果我立即再次重新分配它只会更新节点。
如何清除所有节点并从头开始执行 dom-repeat?我尝试了聚合物阵列突变和 render() 函数并引用了https://github.com/Polymer/polymer/issues/4041 不起作用!每一次。
我需要以类似于第一次渲染的方式渲染 dom-repeat,例如空白屏幕和立即渲染
polymer-1.0 - 聚合物。dom-repeat 后,子 offsetLeft 返回无效值
我执行一个 dom-repeat 来用一些项目填充一个水平弹性框。在 dom-change 事件中,我试图获取创建的 flexbox 子项之一的 offsetLeft,以便滚动到它以使其可见。
我的问题是,无论我要求什么孩子,offsetLeft 总是返回一个对应于第一个孩子的值。它只发生在最近执行 dom-repeat 之后。如果在点击孩子时执行相同的代码,它可以正常工作。
任何人有任何解决问题的建议,或获得相同结果的其他策略?
非常感谢提前
polymer - 在“dom-repeat”中切换“paper-dialog”
我在页面中有一个“纸质对话”对象。如果它不在“dom-repeat”循环内,我可以通过按钮切换它。但是如果我把它放在一个循环中,“this.$.dialog.toggle();” 然后将引用null。
和
知道为什么“this.$.dialog”在将对话框放入循环后变为空吗?