Handlebars.js:按索引查找对象

时间:2015-03-02 16:33:13

标签: javascript handlebars.js

我是handlebars.js的新手 这是我的数据结构(伪代码)

{
  News = list of news;
  Ads = list of add;
}

我尝试做的是访问“按新闻广告”索引(我确保索引存在,没有问题)。添加包含多个属性

  • 链接
  • 来源
  • 标题

当我打电话

{{../Ads.[0]}

一切正常,我可以在使用@key

时访问广告
{{../Ads.[@key]}

handlebars.js找不到任何内容。我认为这是因为@key是一个字符串而不是整数。 但我发现无法将其转换为整数。试过一个帮助器,它将@key转换为整数,但我不知道如何使用它,因为

//template markup
{{../Ads.[numericIndex @key]}}

也不会产生结果。

所以,我想出的是以下(有效)

{{#ad../Ads index = @@key}}{{this}}{{/ad}}

//the helper, just a basic example
Handlebars.registerHelper('ad', function (ads, options) {

     return "<strong>" + options.fn(ads[parseInt(options.hash.index)].Source) + "</strong>";
});

但我想知道实现我想要的最好方法是什么。 当然,我的解决方案有效,但感觉有点笨拙。

想法?

修改

根据Jivings的要求,这是我想要实现的目标。这就是我想要作为广告输出的内容(我使用了车把的模板标签来显示我想要显示的内容。这里的所有属性都属于“广告”) 这应该为我循环播放的每条新闻输出。

希望这有帮助

<div class="ad col-sm-12" title="{{Title}}">
   <a href="{{Link}}">{{Source}}</a>
</div>

结束编辑

0 个答案:

没有答案