В моем шаблоне я повторяю массив, который находится в модели. Для простоты я буду использовать следующий пример:EmberJS - Шаблон условный с параметрами
{{#each user in appModel.users}}
Теперь я пытаюсь отобразить элементы user
, если пользователь находится в определенной группе. У меня есть App.Group
как модель, которая имеет метод проверки, находится ли пользователь в группе. Этот метод принимает параметр, пользователь.
Так,
{{group.has_user user}}
Где group
является конкретным экземпляром App.Group
, будет возвращать истинный или ложный, если ID пользователя был найден в списке группы из идентификаторов.
Я пытаюсь найти способ использовать этот метод в качестве условного шаблона. Как так:
{{#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...
});
Если кто-нибудь знает способ, чтобы использовать метод в условном, или как передать фактические значения помощника, пожалуйста, помогите мне.
спасибо.
Проблема заключается в том, что вы показываете группы, к которым принадлежит текущий пользователь. Мне нужен список пользователей (которые могут не быть текущим пользователем), которые находятся в определенной группе. Возможно, мой оригинальный пост не был ясен; Я добавлю больше деталей. –
Отметьте обновленное сообщение @MichaelBattaglia – Thalaivar
Мне это удалось. Ваше сообщение помогло мне туда добраться, но пропала одна вещь. Вы видите, что в вашей скрипке вы передали фактическое имя группы, чтобы вы могли найти группу в зарегистрированном помощнике, просто просмотрев имя. Я хотел найти, был ли пользователь в группе, передав два связанных свойства, например, в моем исходном сообщении, где я передал user.id и group.id в ifUserInGroup. Передача этого в вашей скрипке приведет к тому, что «user.id» и «group.id» будут использоваться зарегистрированным помощником в виде строк. Ключ должен был использовать Ember.Handlebars.get. Я покажу, как я сделал это еще один пост. –