我是meteor.js的新手,我正在练习构建一个简单的小应用程序。我的问题是如何在模板里面使用模板数据从mongodb获取。这是结构:
router.js
Router.route('/point/:_id', {name: 'pointDetail', data: function() {
return InterPoints.findOne(this.params._id);
} });
模板pointDetail.html
<template name="pointDetail">
<some tags>
{{datathree}}
</some tags>
{{> map}}
</template>
template map.html
<template name="map">
<div class="map-container">
{{> googleMap name="exampleMap" options=exampleMapOptions}}
</div>
</template>
map.js
Template.map.helpers({
exampleMapOptions: function() {
// Make sure the maps API has loaded
if (GoogleMaps.loaded()) {
// Map initialization options
return {
center: new google.maps.LatLng(coordX, coordY),
zoom: 8
};
}
}
});
我想使用我从路由器检索的数据填写map.js中的coorsx和coordy。 有些像coordx = {{coordsx}} 有可能吗?
非常感谢。
答案 0 :(得分:0)
您可以通过Blaze.currentView.parentView.templateInstance()
检索父模板的数据上下文。假设您的Interpoints
文档包含属性coordx
和coordy
:
Template.map.helpers({
exampleMapOptions: function() {
// Make sure the maps API has loaded
if (GoogleMaps.loaded()) {
// Map initialization options
var parentTemplate = Blaze.currentView.parentView.templateInstance();
var coordX = parentTemplate.data.coordx;
var coordY = parentTemplate.data.coordy;
return {
center: new google.maps.LatLng(coordX, coordY),
zoom: 8
};
}
}
});