[英]Handlebars Helper Function
我正在尝试从把手中的辅助函数返回一个值并显示它,这是我的代码-
<div id="test"></div>
<script id="template" type="text/x-handlebars-template">
{{#each this}}
<hr/>
<div id="table">
<table>
<tr>
<td>
<div id="steps" style="color: #000000; font-size:36px;">{{steps}}</div><br></td>
</td>
</tr>
</table>
</div>
{{/each}}
</script>
<script
src="http://cdnjs.cloudflare.com/ajax/libs/mustache.js/0.7.0/mustache.min.js"></script>
<script type="text/javascript"
src="//ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.min.js"></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/2.0.0/handlebars.js"></script>
<script>
$(document)
.ready(
function() {
var source = $("#template").html();
var template = Handlebars.compile(source);
var rdata = [ {
"totalSteps" : 100,
"name" : "Dummy",
"heightFeet" : 5,
"averageSteps" : 10,
}, {
"totalSteps" : 10000,
"name" : "TestMan",
"heightFeet" : 4,
"averageSteps" : 10,
} ];
Handlebars.registerHelper('steps', function(rdata,index) {
var val=rdata[index].totalSteps;
return val.toLocaleString();
});
var ht = template(rdata);
$("#test").html(ht);
});
</script>
但是,我得到这个错误
Uncaught TypeError: Cannot read property 'totalSteps' of undefined
另外,我试图写这样的功能-
$("#class").each function(index) {
return rdata[index].totalSteps;
});
但它不会显示任何内容。 谁能帮我解决这个问题。
您需要将所需的数据传递给助手。 这是一个简化的版本。
{{#each rdata as |value index|}}
{{steps ../rdata index}}
{{/each}}
{
rdata: [ {
totalSteps: 100,
name: "Dummy",
heightFeet: 5,
averageSteps : 10,
}, {
totalSteps : 10000,
name: "TestMan",
heightFeet: 4,
averageSteps: 10,
}]
}
Handlebars.registerHelper('steps', function(rdata,index) {
var val=rdata[index].totalSteps;
return val.toLocaleString();
});
上面的示例在tryhandlebarsjs中起作用
我只是这样做
Handlebars.registerHelper('steps', function() {
return this.totalSteps;
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.