Ответ 1
Думаю, вы сами ответили на это! Использование ../
описано в https://github.com/meteor/meteor/wiki/Handlebars.
Каков стандартный способ доступа к внешним значениям коллекции #each в цикле? например:
<template name="example">
{{#each outerCollection}}
<tr>
{{#each innerCollection}}
<td>{{aaa}}</td>
{{/each}}
</tr>
{{/each}}
</template>
Template.example.aaa = function(){
// cannot access outerCollection values
}
в выше Template.example.aaa, this
указывает на внутреннюю коллекцию.
Я не могу найти способ доступа к элементам externalCollection. Мое решение похоже на ниже, я определяю свою собственную вспомогательную функцию. Является ли это стандартным способом Метеор для достижения этой цели?
<template name="example">
{{#each outerCollection}}
<tr>
{{#each innerCollection}}
<td>{{myHelper ../outerItem innerItem}}</td>
{{/each}}
</tr>
{{/each}}
</template>
Handlebars.registerHelper('myHelper', function (outItem, inItem) {
// can access outerCollection via outerItem
});
Я нашел аналогичный вопрос для случая доступа к обработчику внутреннего события.
Думаю, вы сами ответили на это! Использование ../
описано в https://github.com/meteor/meteor/wiki/Handlebars.
Вы можете использовать нижеприведенный код для извлечения внешних коллекций.
предположим, что у вас есть коллекция, называемая Collection.Customer и Collection.RechargePlan, и вы используете оба в шаблоне для обновления Клиента.
Customer = {"name":"James", "rechargeplan":"monthly"};
RechargePlan = [{"rechargeplan": "monthly"},{"rechargeplan": "yearly"}];
//Inside template, Bydefault Customer is available.
{{#each RechargePlan}}
{{#if equals ../rechargeplan rechargeplan}}
//Hurray Plan matches
{{/if}}
{{/each}}
В приведенном выше коде ../rechargeplan на самом деле Customer.rechargeplan,../на самом деле пошел на один шаг выше иерархии, а затем получил доступ к полю, если он доступен, так как клиент уже доступен для шаблона, это поле подбирается.