我无法让Handlebars助手处理metrojs中的参数
I cannot get Handlebars helpers to work with arguments in meteorjs
我试图在MeteorJS中使用一个简单的带参数的手把助手。
让我给你看一个例子:
{{#myList data className="myClassName"}}
{{name}}
{{/myList}}
助手是这样声明的:
Handlebars.registerHelper('myList', function(context, options) {
if (context && context.length){
var className = options.hash.className || "",
ret = "<ul class='"+ className +"'>";
for(var i=0, j=context.length; i<j; i++) {
ret = ret + options.fn(context[i]);
}
return ret + "</ul>";
}
});
但是属性"hash"始终是一个空数组。
如果我测试像这样的版本:
{{#myList data "myClassName"}}
{{name}}
{{/myList}}
回调方法从不接收第二个参数。
我做错什么了吗?
来自流星/车把:
在Meteor中,块辅助对象不接受任意位置和关键字像非块帮助程序这样的参数。相反,这些论点会被处理一起作为嵌套的Handlebars辅助调用表达式。
但是您应该能够只传递关键字参数:
确切的规则是,块帮助程序总是在没有的情况下调用论据;一个位置参数(没有关键字参数);或仅关键字参数。任何非关键字参数的存在,如foo在上一个示例中,导致以下所有位置和关键字要传递给foo的参数(如果它是一个函数,或者吞咽)。否则,如果只有关键字参数,则它们是传递给辅助对象,这样您就可以定义一个块辅助对象参数的数目(通过给它们命名):{{#helper x=1 y=2z=3}}。。。{{/helper}}。
这应该有效:
{{#myList myData=data className="myClassName"}}
{{name}}
{{/myList}}
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- keyup事件处理程序更改焦点不适用于快速键入
- 如何使用jquery处理php循环通过元素
- angular.js没有'无法在PhoneGap中处理视图标记
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 提示使用服务器端事件处理程序激活JavaScript
- javascript:如何在antlr生成的Lexer中进行错误处理
- 如何编写一个具有公共标头的批处理
- 在同一个服务工作者中处理service-worker.js有任何影响吗
- 如何处理node.js节点mongodb中的连接和查询队列
- 通过命令行/批处理文件打开页面时,将javascript代码注入Google Chrome
- 如何处理10页以上的静态页眉/页脚
- 将事件处理程序绑定到任何可能的事件
- 通过ajax将坐标传递到php服务器端,并在处理后检索到javascript
- python到“;流“;字典处理
- 使用javascript进行实时图像处理
- 导入jQuery脚本获胜'我不处理html文件
- Javascript无法处理表单提交
- 在承诺链中处理早期回报的最佳方式
- 我无法让Handlebars助手处理metrojs中的参数