я делаю каждую петлю для массива, который я строй в качестве помощника:Используйте переменный в качестве имени для доступа к вложенным элементам другого массива
Template.article.helpers({
section: function() {
return [
{type: 'cars', sectionTitle: 'Cars'},
{type: 'vegetables', sectionTitle: 'Vegetables'}
];
},
});
Данные для статей приходит от маршрутизатора:
Router.route('/article/:_id', {
name: 'article',
data: function() {
return {
article: Articles.findOne({ _id: this.params._id })
}
}
});
Но теперь я хочу получить доступ к подэлементу article
с помощью type
помощника. Поэтому в этом примере каждый цикл будет выполняться два раза: сначала я хочу использовать ../article.cars
, а затем ../article.vegetable
. Надеюсь, вы понимаете мою проблему. Я хочу, чтобы получить имя подэлемента по типу хелперов:
<template name="article">
{{#each section}}
<h1>{{this.sectionTitle}}</h1>
<ul>
{{#each ../article.type}} <!-- should get '../article.cars' and '../article.vegetable' -->
<li>{{this.title}}</li>
{{/each}}
</ul>
{{/each}}
</template>
Я хочу использовать содержание type
в качестве имени переменной. Если тип «автомобили», то я хочу использовать ../articles.cars'. Which would be something like
статей ['cars'] which would result of
articles [type] . But in meteor this writing is not possible. And
articles.type` что-то другое.
Это выглядит, как он специфичен для вашего вида двигателя. Какой движок зрения это? – Lenny
@baao Я думаю, что мне нужно что-то вроде obj [name], но в meteor (см. Метки) используются точечные обозначения. Но article.type ищет тип поля. Но я хочу использовать содержимое типа как имя. – user3848987