如何从给定的数字范围迭代?

时间:2015-08-09 12:03:16

标签: ember.js ember-cli

在一个余烬模板中。是否可以执行与伪代码类似的操作:

 <ul>
  {{#each [1..100] as |item|}}
    <li>{{#link-to "articles.index" (query-params page=item)}}{{item}}{{/link-to}}</li>
  {{/each}}
 </ul>

这会产生类似于:

的东西
 <ul>
  <li><a href="localhost/articles?page=1">1</a></li>
  <li><a href="localhost/articles?page=2">2</a></li>
  <li><a href="localhost/articles?page=3">3</a></li>
  // so forth
 </ul>

1 个答案:

答案 0 :(得分:5)

不是真的,但在HTMLBars中使用子表达式很容易实现。所以如果你创建一个这样的帮助器:

App.RangeHelper = Ember.Helper.helper(function(params) {
  var range = [];
  for(var i=params[0]; i < params[1]; ++i){
    range.push(i);
  }
  return range;
});

你可以这样做:

{{#each (range 1 100) as |item|}}
  <li>{{#link-to "articles.index" (query-params page=item)}}{{item}}{{/link-to}}</li>
{{/each}}

我正在模仿python范围函数,所以请记住它在我的例子中以99结尾。