repeat - Google Polymer 重复值在 1...n 范围内

标签 repeat polymer for-in-loop

我已经开始使用 Polymer 并完成了社交媒体卡片的基本教程。其中有几张卡片作为 repeat="{{post in posts}}" 循环。我想做的是 repeat="{{post in range 1...10}}"。最终我想使用已发布的属性 cols 来提供最大值而不是 10。我已经能够通过将 cols 属性设置为 [1,2,...,9] 之类的东西来实现这样的工作但这对任何大的值(value)观都是不合理的。我还通过使用 ready 函数并执行 this.colsAr = new Array(cols) 对此进行了扩展,然后在重复`{{col in colsAr}} .

在数量由属性确定的可变数量元素上循环的最佳/正确方法是什么?

此外,还可以说 cols 属性是通过选择输入动态更改的。这应该会在选择新值时导致重新绘制。

最佳答案

通常最好的方法是使用计算属性来表达过滤后的数组。

像这样:

 <template repeat="{{post in slice}}">
   ...
  computed: {
    slice: 'sliced(posts)'
  },
  sliced: function(posts) {
    return posts.slice(1, 3);
  }

但是,现在,计算属性引擎不会自动 ArrayObserve posts,因此我们必须在 Array 结构发生变化时手动强制重新计算。

  kick: 0,
  computed: {
    slice: 'sliced(posts, kick)'
  },
  sliced: function(posts) {
    return posts.slice(1, 3);
  },
  postsChanged: function() {
    this.kick++;
  }

增加 kick 会强制数据引擎重新计算 slice(给它一个 kick)。 Fwiw,我们正在努力改善这种特殊情况,但上述技术应该在短期内有效。

工作示例:

http://jsbin.com/dadeto/3/edit

关于repeat - Google Polymer 重复值在 1...n 范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24437833/

相关文章:

javascript - 为什么对象点表示法在 for...in 循环中不起作用?

mysql - SQL:连接问题

javascript - 如何在 JavaScript 正则表达式中捕获任意数量的组?

javascript - 如何切换 Polymer 入门套件中的应用程序抽屉

html - 如何使用 Polymer 重复一定数量的图标?

polymer - platform.js 被认为是 "Polymer"吗?

Python:计算字典的重复值

c - 该程序缺少/需要修复什么?

javascript - For In Loop 在 JavaScript 中的使用

Javascript:如何隐藏对象的属性?