2015-06-29 2 views
0

У меня есть две переменные group1 и group2_list в Метеор. Мне нужно сделать это:Использовать переменную внутри каждого цикла в метре

{{#each group2_list}} 
<p><a href="{{pathFor 'page_detail' group1=group1._id group2=_id}}">{{_id}}</a></p> 
{{/each}} 

но group1._id не доступен.

Я могу использовать group1._id за пределами {{#each group2_list}}...{{/each}}, но я думаю, он считает, что group1._id - это поле в объекте в group2_list. Как я могу использовать group1._id как обычную переменную, а не как переменную внутри объектов из group2_list?

редактировать

Переменные заполняются через маршрутизатор

data: function() { 
    return { 
    'group1': Group1.findOne(this.params._id), 
    'group2_list': Group2.find({group1Id: this.params._id}), 
    } 
}, 
+0

Вы можете поделиться, где group1_list объявлен и закончился? Я подозреваю, что вы закрываете group1_list, а затем пытаетесь его использовать. – Alp

+0

Я обновил свой вопрос – Jamgreen

+0

Это выражение правильное? ** {{pathFor 'page_detail' group1 = group1._id group2 = _id}} ** – Alp

ответ

1

Чтобы получить доступ к переменным уровня шаблона в цикле #each просто добавить ../ перед именем переменной. Подумайте об этом как о относительном пути к переменной. Если вы хотите подняться на один уровень, используйте ../ или ../../, если вы хотите подняться на два уровня.

{{#each group2_list}} 
    <p><a href="{{pathFor 'page_detail' group1=../group1._id group2=_id}}">{{_id}}</a></p> 
{{/each}} 
+0

Спасибо. Оно работает. Но это похоже на взлом. Правильно ли это? – Jamgreen

+0

У них есть примеры этого метода в документации метеорита, поэтому я предполагаю, что это стандартная практика. Это просто плохо документировано. –

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