.hbs
ファイルでは、さまざまなアイテムのナビゲーションメニューを作成しています。項目の1つは、ユーザーがプロ(ブール値)の場合にのみ表示されます。イニシャライザからハンドルバーに変数を渡す.hbs(Discourse Plugin、一般的にはEmberかもしれません)
var pro
は私のイニシャライザで設定された変数で、メニュー項目の1つを条件付きで表示するために、.hbs
というファイルを渡す必要があります。
Emberでは、これはどのように達成されていますか?
.hbs
ファイルでは、さまざまなアイテムのナビゲーションメニューを作成しています。項目の1つは、ユーザーがプロ(ブール値)の場合にのみ表示されます。イニシャライザからハンドルバーに変数を渡す.hbs(Discourse Plugin、一般的にはEmberかもしれません)
var pro
は私のイニシャライザで設定された変数で、メニュー項目の1つを条件付きで表示するために、.hbs
というファイルを渡す必要があります。
Emberでは、これはどのように達成されていますか?
このような場合、サービスを使用して、アプリケーションのライフサイクル中に変数を格納します。イニシャライザは変数とメニュー項目を処理します。メニューコンポーネントは、サービスから変数を取得します。
また、サービスから変数を取得するヘルパーを定義することもできます。
私は全く同じ問題を抱えていました。私は自分のHTMLに設定されている言語変数を使用しなければならず、テンプレートでこの言語変数を使用する必要がありました。私はヘルパーを使っていました。ヘルパーでは、あなたのイニシャライザで宣言されている変数proを使うことができます。
例:
function myInit(pro) {
var template = ...;
var data = ...;
Handlebars.registerHelper('ifProUser', function(item) {
if (pro) {
return "pro menu here";
} else {
return "";
}
}
var html = template(data);
...
}
はその後、テンプレートにだけ使用します。
{{ifProInit}}{{/ifProInit}}
したがって、hbsテンプレートで '{{ififProuser}}'を実行しますか? – stevenpslade
あなたはヘルパー{{ifProUser}} {{/ ifProUser}}を使用します –
ああそうサービスで関数を入れて、テンプレートで利用できるようになります初期化子でヘルパーを定義しますか? – stevenpslade
はいといいえ。 Menuコンポーネントは、サービスからメニュー項目を取得します。メニューコンポーネントのテンプレートは、これらのメニュー項目を反復処理します。つまり、私たちはヘルパーを必要としません。 – ykaragol