我正在使用 Handlebars.js,但遇到了我无法解决的问题。
我想遍历模板中的数组,但问题是我用于迭代器的表达式是 getter 而不是数组。
说明问题的一段代码如下:
HTML:
<script id="template" type="text/x-handlebars">
Accessing directly: {{array}} <br/>
Accessing by getter: {{getArray}} <br/>
<br/>
Looping directly:
<ul>
{{#each array}}
<li>{{this}}</li>
{{/each}}
</ul>
<br/>
Looping by getter:
<ul>
{{#each getArray}}
<li>{{this}}</li>
{{/each}}
</ul>
</script>
<p id="content"></p>
JS:
var template = Handlebars.compile($("#template").html());
var element = {
array: [0, 1, 2],
getArray: function() {
return this.array;
}
};
$("#content").html(template(element));
问题是each
使用 getter 的 什么都不做。这可以在这个jsFiddle中看到。
是否有任何干净的方法可以使用 getter 执行此操作,或者我应该编写一个帮助程序或类似辅助函数的东西?
谢谢!