2015-06-23 3 views
2

У меня есть {{#each}}, который по сути повторяется через коллекции пользователей. Теперь я хочу проверить, является ли пользователь администратором, чтобы установить переключатель (материализовать). Упрощенная версия:{{#if}} внутри {{#each}} с параметром, исходящим от каждого элемента.

{{#each getUsers}} 
    testing: {{_id}} {{#if isAdmin "tTEScMyjCedano2oT"}}checked="checked"{{/if}} 
{{/each}} 

Здесь я жесткого кодирования в параметре _ID в {{#if}} и она работает, как ожидалось. Функция isAdmin работает правильно, работает {{#if}} и {{id}} (выводит правильный идентификатор).

Но, конечно, я не хочу, чтобы жесткий код передал код isAdmin, но хочу, чтобы он был {{_id}}, но он не работает. т.е.

{{#each getUsers}} 
    testing: {{_id}} {{#if isAdmin "{{_id}}"}}checked="checked"{{/if}} 
{{/each}} 

не работает, и ни один не делает

{{#each getUsers}} 
    testing: {{_id}} {{#if isAdmin "{{../_id}}"}}checked="checked"{{/if}} 
{{/each}} 

ни

{{#each getUsers}} 
    testing: {{_id}} {{#if isAdmin {{id}}}}checked="checked"{{/if}} 
{{/each}} 

Что такое правильный способ сделать это?

ответ

2

Не используйте двойные кавычки, ни фигурные скобки:

{{#each getUsers}} 
    testing: {{_id}} {{#if isAdmin _id}}checked="checked"{{/if}} 
{{/each}} 
+0

Спасибо, это работает! Принят, когда смогу. Это потому, что оно уже находится в '{{}}, то есть из' # if'? – Dan

+0

Да, на данный момент вы не можете вложить подвыражения Spacebars в помощнике. – saimeunt

+0

Причина, по которой это работает, заключается в том, что в вашем заявлении '# each' он изменяет контекст данных для обращения к« каждому »пользователю, поэтому вместо того, чтобы делать' user._id', вы можете просто использовать 'id' сам по себе, потому что он уже знает, что вы имеете в виду 'user' – SirCharlesWatson

 Смежные вопросы

  • Нет связанных вопросов^_^