handlebars.js 帮助程序不起作用

发布于 2024-11-08 23:07:23 字数 984 浏览 2 评论 0原文

我在这里有点失去理智......我有以下代码:

<script id="myTemplate" type="text/x-handlebars-template"> 
  <div>{{post/name}}</div>
  {{#if post/attachments}}  
    <p>
    {{#list post/attachments}}<img src="{{url}}">{{/list}}  
    </p> 
  {{/if}}
</script>

以及一个我直接从每个助手复制的助手,以确保没有错误。

Handlebars.registerHelper('list', function(context, fn, inverse) {
  var ret = "";

  if(context && context.length > 0) {
    for(var i=0, j=context.length; i<j; i++) {
      ret = ret + fn(context[i]);
    }
  } else {
    ret = inverse(this);
  }
  return ret;
});

window.myTemplate = Handlebars.compile($('#myTemplate').html());
window.myTemplate({post:{name:"Post!", attachments:[{url:"/images/preview.jpg"},{url:"/images/1.jpg"}]

这实际上并没有调用帮助器,代码最终看起来像这样:

<div></div>
<p>
  <img src>  
</p> 

现在我用每个块执行此操作并且它工作正常,我缺少什么?

I am somewhat losing my mind here... I have the following code:

<script id="myTemplate" type="text/x-handlebars-template"> 
  <div>{{post/name}}</div>
  {{#if post/attachments}}  
    <p>
    {{#list post/attachments}}<img src="{{url}}">{{/list}}  
    </p> 
  {{/if}}
</script>

And a helper which i copied directly from the each helper to make sure there were no errors.

Handlebars.registerHelper('list', function(context, fn, inverse) {
  var ret = "";

  if(context && context.length > 0) {
    for(var i=0, j=context.length; i<j; i++) {
      ret = ret + fn(context[i]);
    }
  } else {
    ret = inverse(this);
  }
  return ret;
});

window.myTemplate = Handlebars.compile($('#myTemplate').html());
window.myTemplate({post:{name:"Post!", attachments:[{url:"/images/preview.jpg"},{url:"/images/1.jpg"}]

This does not actually call the helper, code ends up looking like this:

<div></div>
<p>
  <img src>  
</p> 

Now I do this with an each block and it works fine, what am I missing?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜雨飘雪 2024-11-15 23:07:23

结果我在我的页面上多次包含了handlebars.js,这导致我的助手被忽略。

现在,如果我能找到一种方法来恢复我生命中的那些时光就好了……

Turns out I was including handlebars.js more than once on my page, which was causing my helpers to be ignored.

Now, if only I could find a way to get those hours of my life back...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文