【发布时间】:2016-07-14 15:19:37
【问题描述】:
我有一个简单的 MustacheJS 模板:
<script id="myTpl" type="text/template">
<div id="metrics">
<div>
<p>Votes: {{ votes.total }}</p>
<p>Men: {{ votes.men }}</p>
<p>Women: {{ votes.women }}</p>
<p>Unknowns: {{ votes.unknown }}</p>
</div>
</div>
</script>
<div id="container">
</div>
还有一段JavaScript代码:
var data = {
votes: {
total: function() {
return this.voters.men.length + this.voters.women.length + this.voters.unknown.length;
//return this.votes.men() + this.votes.women() + this.votes.unknown();
},
men: function() {
return this.voters.men.length;
},
women: function() {
return this.voters.women.length;
},
unknown: function() {
return this.voters.unknown.length;
}
},
voters: {
men: [
"hpiotrekh",
"goferek",
"Carlos_Irwin_Estevez",
"Nemezis_"
],
women: [],
unknown: [
"komurczak",
"PLDami"
]
}
}
var template = $('#myTpl').html();
var html = Mustache.to_html(template, data);
$('#container').html(html);
在 votes.total 函数中的第二个 return 语句被注释并且我们使用该函数的第一个 return 的情况下,一切正常。但是当我尝试使用第二个使用它所属对象的函数的返回语句时,代码不会呈现。
我不明白为什么。
现场演示https://jsfiddle.net/bxgnd7ch/
只需注释第 4 行并取消注释第 5 行。
【问题讨论】:
标签: javascript templates mustache