在meteor.js中使用模板之间的数据

时间:2015-08-12 08:53:39

标签: meteor

我是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}} 有可能吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

您可以通过Blaze.currentView.parentView.templateInstance()检索父模板的数据上下文。假设您的Interpoints文档包含属性coordxcoordy

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
      };
    }
  }
});