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 に答える