Template.googleMap.rendered不是一个函数

zbr*_*zbr 0 meteor

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

我想在网站上放置一个谷歌地图,我有点跟随这个例子 - https://github.com/meteor/mobile-packages/tree/master/examples/solomo

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

/client
    /googleMap
        googleMap.html
        googleMap.js
    head.html
    body.html
Run Code Online (Sandbox Code Playgroud)

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

现在到各自的文件:

googleMap.html

<template name="googleMap">
  <div id="google-map"></div>
</template>
Run Code Online (Sandbox Code Playgroud)

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);
});
Run Code Online (Sandbox Code Playgroud)

head.html

<head>
  <script type="text/javascript"
    src="https://maps.googleapis.com/maps/api/js"></script>
</head>
Run Code Online (Sandbox Code Playgroud)

body.html

<body>
  {{> googleMap}}
</body>
Run Code Online (Sandbox Code Playgroud)

我希望(并希望)出现谷歌地图,但它没有,并且这个错误被打印到控制台:Template.googleMap.rendered不是一个功能

我试过在googleMap文件夹外移动文件client夹,认为可能需要在服务器上执行代码,但这会导致服务器控制台中出现更大的问题:ReferenceError:模板未定义

我究竟做错了什么?

c.c*_*ier 5

我想你应该写:

Template.googleMap.rendered = function() {
   var map = new GoogleMap(this.firstNode);
}
Run Code Online (Sandbox Code Playgroud)