4

独自の Handlebars ヘルパーを作成しようとしていますが、引数を渡すのに問題があります。コンテキストとして、Ghost ( http://tryghost.org )をハッキングしようとしていますが、これはより一般的なハンドルバーの問題であると思われます。

働く

まずは実用例。これが私のテンプレートの関連部分です:

<h1>{{myHelper}}</h1>

これが私のHandlebars.registerHelper方法です(ゴーストは名前を変更しますが、同じです):

ghost.registerThemeHelper("myHelper", function() { 
    console.log(this.posts[0].title); // outputs "Welcome to Ghost" to console
    return this.posts[0].title; // returns "Welcome to Ghost"
})

動作しない

以下は私が達成したいものです。テンプレート:

<h1>{{myHelper "title"}}</h1> 
<h3>{{myHelper "slug"}}</h3>

メソッドに引数を渡そうとすると、変数の置換に失敗します。

ghost.registerThemeHelper("myHelper", function(myData) { 
    console.log(this.posts[0].myData); // outputs "undefined" to console
    return this.posts[0].myData; // returns nothing
})

「タイトル」のような文字列を式で評価するために渡す適切な方法は何ですか?

activateTheme()好奇心旺盛な Ghost ユーザーのために、関数内に独自のヘルパーを登録しました。ghost/core/server.js

4

1 に答える 1