tldr: как вставить один шаблон html в различные места в приложении Meteor JS, каждый из которых использует уникальный контекст данных для определенных маршрутов (используя Iron Router).meteorjs: простой многоразовый шаблон с конкретными контентами данных с использованием Iron Router
Template.images
:
<template name="images">
{{#each dataSource }}
<img id="{{ id }}" src="{{ src }}">
{{/each}}
</template>
Где dataSource
это данные: helpers.js
предположение здесь: Template.images
должен быть источником хелперов (данные), так как они в конечном итоге оказываются в этом шаблоне.
Template.images.helpers({
funData: function() {
return [
{ id: 'fun' , src : 'fun/pink.png' },
{ id: 'fun' , src : 'fun/blue.png' }
]
},
painData: function() {
return [
{ id: 'pain' , src : 'pain/black.png' },
{ id: 'pain' , src : 'pain/gray.png' },
{ id: 'pain' , src : 'pain/moargrey.png' },
{ id: 'pain' , src : 'pain/white.png' }
]
},
loveData: function() {
return [
{ id: 'love' , src : 'love/orange.png' },
{ id: 'love' , src : 'love/yellow.png' },
{ id: 'love' , src : 'love/blue.png' }
]
}
});
У меня многие из этих fooData, barData и т.д. коллекций, они вставляются в качестве Arg (неправильный термин) в пределах Template.images
с помощью dataSource
.
Определенные маршруты дают Template.images
несколько раз, каждый с уникальным контекстом данных. IOW Мне нужно настроить маршрутизатор/шаблоны для доступа к произвольно многим конкретным dataSources
. Могу ли я сделать что-то подобное?
<template name="myTemplate1">
<h1>FUN</h1>
{{> images funData }}
</template>
<template name="myTemplate2">
<h1>PAIN and LOVE</h1>
{{> images painData loveData }}
</template>
Тогда в моем маршрутизаторе (? Или контроллер) что-то вроде:
Router.map({
this.route('myTemplate1', {
data : function() { // 1. set data context
dataSource : funData // how to set this?!
}
})
this.route('myTemplate2', {
data : function() { // 2. fetching multiple helpers?
dataSource : [painData,loveData] // set to array ?!
}
})
})
Резюме: Как использовать Meteor JS послать произвольно много набора данных к одному шаблону и сделать их в различные указанные шаблоны в приложении.