【发布时间】:2015-04-20 16:13:36
【问题描述】:
您好,我是流星新手,我正在编写教程之外的第一个应用程序。我来自节点 + 快递世界。我目前正在尝试将使用 google maps java script api v3 在 Node+express 上构建的应用程序转换为流星应用程序,以便我可以将其分发到特定设备。在我的试验中,我通过将我的地图代码放入我的 html 页面的 head 元素中,让该应用程序在网络上本地运行,并且它按预期运行。一旦我尝试将其导入到 android 设备上,我就会收到错误消息:
Uncaught ReferenceError: google is not defined
从那个错误导致我到 this post 告诉我将我的地图代码移动到 Template.rendered 函数中,因为在加载谷歌地图 api 之前正在运行流星脚本,这似乎是正确的。我按照该帖子上的说明进行操作,现在收到一条新错误消息:
Uncaught TypeError: Cannot set property 'rendered' of undefined
通过谷歌搜索将我带到this blog post 以提及我的错误。它指出我加载我的 html 页面的顺序存在问题。它指导您更改 packages.json 文件以重新构建文件服务的顺序。这里的问题是我的包文件不相似设置她的方式,我无法将其与她的档案联系起来。任何建议都将不胜感激,我将在下面包含我当前应用程序的代码。
HTML:
<head>
<title>Google Maps App</title>
<script type="text/javascript"
src="https://maps.googleapis.com/maps/api/js?key=MYKEYHERE&sensor=true">
</script>
</head>
<body>
<template name="maps">
<div id="map-canvas"></div>
</template>
</body>
js:
if (Meteor.isClient) {
Template.maps.rendered = function() {
var map;
function initialize() {
var mapOptions = {
zoom: 8,
center: new google.maps.LatLng(-34.397, 150.644)
};
map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
}
google.maps.event.addDomListener(window, 'load', initialize);
}
}
if (Meteor.isServer) {
Meteor.startup(function () {
});
}
包:
meteor-platform
autopublish
insecure
twbs:bootstrap
fortawesome:fontawesome
jquery
提前感谢您的宝贵时间。如果有什么我可以包含的内容会更有帮助,请告诉我。
编辑 1:目前正在研究将 this meteor package 用于带有 javascript api v3 的 googlemaps 将发布更新。
【问题讨论】: