车把登记助手做移动检查

时间:2013-06-07 18:10:09

标签: javascript handlebars.js helper

您好我正在尝试根据车把辅助方法切换模板

Handlebars.registerHelper("isMobile", function(){
   return typeof window.ontouchstart === "object";
});

并在模板中

{{isMobile}} --mobile template--

但是这个辅助方法不起作用,因为我需要像

这样的东西
 {{#if}} this {{else}} that{{/if}}

我不想使用{{#if mobile}},因为所有数据都被解析并发送到骨干模型,这与在解析过程中修改模型无关。

提前感谢任何建议/帮助

1 个答案:

答案 0 :(得分:0)

您可以按建议使用options.inverse here

  

Handlebars为else片段提供了块   options.inverse。

因此,使用 options.fn options.inverse 重写您的助手。

Handlebars.registerHelper("ifMobile", function(options){
    if ( typeof window.ontouchstart === "object" ) {
        return options.fn(this);
    } else {
        return options.inverse(this);
    }
});

最后,您的模板应如下所示:

{{#ifMobile}}
    <span>Mobile!</span>
{{else}}
    <span>Not mobile!</span>
{{/ifMobile}}