【发布时间】:2014-09-24 04:58:25
【问题描述】:
为什么表达式 1、2 和 4 可以按预期工作,而 3 和 5 则不行
HTML:
<script id="template" type="text/x-handlebars-template">
<ol>
<li>{{dash 'abc' (concat a b)}}</li>
<li>{{dash d (concat a b)}}</li>
<li>{{dash c.c (concat a b)}}</li>
<li>{{dash (concat a b) c.c}}</li>
<li>{{dash (concat a e.e) c.c}}</li>
</ol>
</script>
<div id="rendered"></div>
JavaScript:
Handlebars.registerHelper('dash', function(a, b) {
return a + "-" + b;
});
Handlebars.registerHelper('concat', function(a, b) {
return a + b;
});
var template = Handlebars.compile($("#template").html());
$("#rendered").html(template({a: 'a', b:'b', c:{c:'c'}, d:'d', e: {e: 'e'}}));
jsfiddle:http://jsfiddle.net/beradrian/6T8ah/
实际结果是
1. abc-ab
2. d-ab
3. c-[object Object]
4. ab-c
5. ae-[object Object]
我在 Handlebars 填写了一份错误报告:https://github.com/wycats/handlebars.js/issues/800。
【问题讨论】:
标签: javascript templates handlebars.js