Javascript 用于生成列表的helper方法
我正在尝试实现一个Handlebar助手,它将接收一些数据,并基于这些数据生成一个列表。在helper方法中生成列表之后,我想循环这个列表。在示例中,这一点很清楚 场景是:我有一些数据,当我解析这些数据时,我想为这些数据中的不一致性创建一些自定义警告。负责从原始JSON数据生成警告的方法称为Javascript 用于生成列表的helper方法,javascript,templates,handlebars.js,Javascript,Templates,Handlebars.js,我正在尝试实现一个Handlebar助手,它将接收一些数据,并基于这些数据生成一个列表。在helper方法中生成列表之后,我想循环这个列表。在示例中,这一点很清楚 场景是:我有一些数据,当我解析这些数据时,我想为这些数据中的不一致性创建一些自定义警告。负责从原始JSON数据生成警告的方法称为generateWarnings() 我有编译模板和呈现数据的函数,定义如下: function compileTemplate(targetId) { return Handlebars.compi
generateWarnings()
我有编译模板和呈现数据的函数,定义如下:
function compileTemplate(targetId) {
return Handlebars.compile($("#" + targetId).html());
}
function renderData(template, context, targetId) {
$("#" + targetId).html(template(context));
}
我叫他们:
var warningsPlaceHolderId = "warnings_plholder";
var warningsTemplateId = "warnings_template";
var warningsTemplate = HandlebarsHelpers.compileTemplate(warningsTemplateId);
renderData(warningsTemplate, data, warningsPlaceHolderId);
车把模板:
<ol>
{{#each generateWarnings this}}
Warning description: {{this.text}}
{{/each}}
</ol>
因此,我希望这3个警告的text
属性在一个列表中,但是我得到了一个错误:
未捕获类型错误:renderData()上的inverse不是函数。这不应该在帮助程序中使用
generateAll()
Handlebars.registerHelper('generateWarnings', function(data) {
return generateWarnings(data); // THIS SHOULD BE generateAll(data)??
});
generateAll: function(data) {
还有,你在用标签?!对于您的函数,它将无法按您期望的方式调用
这:
generateAll:function(data){…}代码>
应该是:
var generateAll=函数(数据){…}代码>
我从未见过标签在JavaScript中的良好用途
您的方法似乎也有点不寻常(而且过于复杂)。为什么不在将数据传递到模板之前操作它呢?我会考虑使用JavaScript来生成警告,然后在传递到模板之前将它们附加到数据中。在这种情况下,我看不出有什么特别的原因需要使用车把助手(当然,我对您试图解决的问题并不完全熟悉)
Handlebars.registerHelper('generateWarnings', function(data) {
return generateWarnings(data); // THIS SHOULD BE generateAll(data)??
});
generateAll: function(data) {