テンプレート内で、モデル内の配列を反復処理しています。簡単にするために、次の例を使用します。
{{#each user in appModel.users}}
今、user
ユーザーが特定のグループに属しているかどうかの要素を表示しようとしています。私はApp.Group
モデルとして、ユーザーがグループに属しているかどうかを確認する方法を持っています。このメソッドはパラメーター user を取ります。
そう、
{{group.has_user user}}
Wheregroup
は の特定のインスタンスでありApp.Group
、ユーザーの ID がグループの ID リストにある場合は true または false を返します。
このメソッドをテンプレートの条件として使用する方法を見つけようとしています。そのようです:
{{#if group.has_user user}}
<block>
{{/if}}
すべてをまとめるには:
{{#each user in appModel.users}}
{{#if group.has_user user}}
<block displaying user data>
{{/if}}
{{/each}}
したがって、グループのユーザを表示するという望ましい効果が達成される。問題は、条件付き{{#if}}
ヘルパーがメソッドでパラメーターを取得できないことです。
カスタム レジスタ ヘルパーを使用しようとしましたが、モデル属性を渡す方法が見つかりませんでした。テンプレートでヘルパーを次のように使用した場合:
{{#ifUserInGroup user.id group.id}}
渡されたパラメーターとして文字列「user.id」と「group.id」を取得します。ヘルパーは次のように記述されます。
Ember.Handlebars.registerHelper('ifUserInGroup', function(val1, val2, options){
//This is where I would get the models, but val1 and val2 are strings, not id's...
});
メソッドを条件付きで使用する方法、または実際の値をヘルパーに渡す方法を誰かが知っている場合は、助けてください。
ありがとうございました。