2015-12-08 3 views
1

Контекстmeteor.js & spacebars - передачи переменных в вложенном цикле

Я пытаюсь использовать рули для обхода событий и затем вложенного цикла с помощью образов. Мне нужно выбрать только изображения, соответствующие событию, в котором в данный момент включен цикл событий.


Проблема

Я не могу передать _id события внутри изображения вложенного. Для этого есть обход? Я понимаю, что могу передавать переменные через помощника, но было бы полезно узнать, есть ли более простой способ.


Ниже мета-код для того, что не работает до сих пор:

//attach venue image to each venue 
{{#each myVenues}} 
    {{#each myImages}} 
     {{#if myVenues._id == myImages._id}} 
     <img src="{{this.url}}> 
     {{/if}} 
    {{/each}} 
{{/each}} 

Любая помощь будет оценен по достоинству!

+2

Возможный дубликат [Как я могу использовать, если условия на метеора шаблон?] (http://stackoverflow.com/questions/28670444/how-can-i-use-if-condition-on-the-meteor-template) –

+1

Метеор больше не использует рули, у него есть собственный шаблон язык, называемый космос. Ваш вопрос является общим. См. Дублирующий вопрос. –

+0

@ChristianFritz - спасибо, но, как я уже говорил, я уже знал, что могу использовать помощника - я ищу что-то в этих строках - http://handlebarsjs.com/block_helpers.html#block-params – Sekoul

ответ

1

Более поздние версии пространственных баров поддерживают ссылку на родителя. Попробуйте:

{{#each myVenues}} 
    {{#each myImages}} 
     {{#if ../_id == myImages._id}} 
      <img src="{{this.url}}> 
     {{/if}} 
    {{/each}} 
{{/each}} 

EDIT:

Christian Fritz отметил, что ваша условная логика в заявлении, если не будет работать с spacebars. Если вы создали помощник для оценки условной логики, вы все равно можете получить эту работу:

{{#each myVenues}} 
    {{#each myImages}} 
     {{ifequals ../_id myImages._id}} 
      <img src="{{this.url}}> 
     {{/if}} 
    {{/each}} 
{{/each}} 

Тогда в качестве помощника:

Template.registerHelper('ifequals', function(a,b) { 
    return a === b; 
}); 
+0

Точно, что я искал - спасибо! – Sekoul

+1

удачи в этом, потому что я не думаю, что это сработает. spacebars не поддерживает логику в условии. Я думаю, что вы ищете https://atmospherejs.com/ostrio/templatehelpers –

+1

Вы правы, условная логика потерпит неудачу, однако ссылка на родителя должна работать. Если у него уже есть помощники шаблонов для оценки логики эквивалентности, то он может просто передать эти аргументы в качестве аргумента: {{ifequals ../_id myImages._id}} –

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