3

如何在聚合物自定义元素模板中编写数字for循环?我的意思是

<template repeat="{{for i = 1 to 10}}">
<div>item</td>
</template>

在当前版本的 Dart 1.0 中是否可行?

4

1 回答 1

3

目前不,这在 Polymer.dart(或据我所知 Polymer.js)中是不可能的。重复绑定需要一个可迭代的(参见Polymer_expressions库的重复模板部分)。不幸的是,由于问题 12669,也无法使用列表文字来完成此操作。

使用过滤器我们可以做到这一点:

<!-- myelement.html -->

<polymer-element name="my-element">
  <template>
    <div>
      <template repeat="{{ 5 | myFilter }}">
        <p>Write me {{ }}</p>
      </template>
    </div>
  </template>
  <script type="application/dart" src="myelement.dart"></script>
</polymer-element>
// myelement.dart

import 'package:polymer/polymer.dart';
import 'package:polymer_expressions/filter.dart';

@CustomTag('my-element')
class MyElement extends PolymerElement {
  final Transformer myFilter = new GenerateIterable();

  MyElement.created() : super.created();

}

class GenerateIterable extends Transformer<Iterable, int> {
  int reverse(Iterable i) => i.length;
  Iterable forward(int i) => new Iterable.generate(i, (j) => j + 1);
}

创建一个导入 myelement.html 并使用的页面<my-element></my-element>将输出:

<div>
  <p>Write me 1</p>
  <p>Write me 2</p>
  <p>Write me 3</p>
  <p>Write me 4</p>
  <p>Write me 5</p>
</div>
于 2013-11-15T19:08:03.590 回答