0

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

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

并在模板中

{{isMobile}} --mobile template--

但是这个辅助方法不起作用,因为我需要类似的东西

 {{#if}} this {{else}} that{{/if}}

我不想使用 {{#if mobile}} 因为所有数据都已解析并发送到主干模型,这与解析期间修改模型无关..

提前感谢您的任何建议/帮助

4

1 回答 1

0

您可以按照此处的建议使用 options.inverse :

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

所以,使用options.fnoptions.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}}
于 2013-06-10T08:28:47.363 回答