Template.googleMap.rendered不是一个函数

时间:2014-12-09 13:42:18

标签: meteor

我是Meteor的新手,试图在Meteor网站上的待办事项列表教程之后完成我的第一个项目。

我想在网站上放置Google地图,并且稍微关注此示例 - https://github.com/meteor/mobile-packages/tree/master/examples/solomo

但是,我有一个不同的项目结构,它看起来像这样:

/client
    /googleMap
        googleMap.html
        googleMap.js
    head.html
    body.html

当然还有其他一些文件和文件夹,但它们对于这个问题并不重要。

现在到相应的文件:

googleMap.html

<template name="googleMap">
  <div id="google-map"></div>
</template>

googleMap.js

var GoogleMap = function(container) {
  var lat = 0;
  var lng = 0;
  var mapOptions = {
    center: new google.maps.LatLng(lat, lng),
    zoom: 17
  };
  this.map = new google.maps.Map(container, mapOptions);
};

Template.googleMap.rendered(function() {
  var map = new GoogleMap(this.firstNode);
});

head.html

<head>
  <script type="text/javascript"
    src="https://maps.googleapis.com/maps/api/js"></script>
</head>

body.html

<body>
  {{> googleMap}}
</body>

我希望(并希望)显示Google地图,但它没有,并且此错误会打印到控制台: Template.googleMap.rendered不是函数

我已经尝试将googleMap文件夹移到client文件夹之外,以为可能需要在服务器上执行代码,但这会导致服务器中出现更大的问题&#39;控制台: ReferenceError:模板未定义

我做错了什么?

1 个答案:

答案 0 :(得分:5)

我认为你应该写:

Template.googleMap.rendered = function() {
   var map = new GoogleMap(this.firstNode);
}