我已经将地图api包含在我的项目中.现在我想在我的地图上显示一些标记.我在启动函数中初始化我的地图:
Meteor.startup(function() {
...
var mapOptions = {
zoom: 8,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
Map = new google.maps.Map(document.getElementById("map-canvas"),
mapOptions);
Run Code Online (Sandbox Code Playgroud)
比我在渲染时设置地图的中心
Template.mapPostsList.rendered = function() {
var p2 = Session.get('location');
Map.setCenter(new google.maps.LatLng(p2.lat, p2.lng));
var marker = new google.maps.Marker({
position: new google.maps.LatLng(p2.lat, p2.lng),
title:'Meine Position'
});
marker.setMap(Map);
Run Code Online (Sandbox Code Playgroud)
直到现在一切正常.尽管我有一个PostCollection,其中包含一些坐标.我有一个发布和订阅功能.现在我想通过地图上的标记显示我的帖子.
我的第一个想法是在我的渲染函数中执行此操作.问题是在初始加载时没有显示帖子,因为我的localcollection(clientside)不包含任何帖子.从服务器加载帖子需要一些时间.
这就是我试图建立一个辅助功能的原因.因为如果帖子中的某些内容发生变化,帮助程序会自动显示.
Template.mapPostsList.helpers({
posts: function() {
var allPosts = Posts.find();
allPosts.foreach(function(post) {
create marker and attach it to the map
....
marker.setMap(Map);
})
Run Code Online (Sandbox Code Playgroud)
问题是,我的地图变量没有定义.有没有办法在全球范围内定义它?为什么我可以在渲染函数中使用Map变量?尽管我不喜欢我的方法用辅助功能注射我的标记,还是通常的方式?
有人能给我提示如何解决我的问题吗?
用户可以在我的应用中执行一些不可逆转的操作.为了增加安全级别,我想验证执行此类操作的人员实际上是登录用户.我怎样才能实现它?
对于有密码的用户,我想要一个要求再次输入用户密码的提示.我怎样才能在不通过网络发送密码的情况下验证密码?
通过外部服务登录的用户是否可以采取类似的操作?如果是的话,如何实现呢?
这似乎是一个非常基本的问题,没有优雅的解决方案/答案.
如何从(1)服务器或(2)客户端访问客户端(远程)IP地址?
我可以在单个订阅调用中发布多个集合吗?如果是的话请指导我.
目前是否有将ClojureScript与Meteor集成的解决方案?
我想构建一个Meteor应用程序,在JavaScript的各种风格(JavaScript,CoffeeScript,TypeScript,LiveScript和ClojureScript)之间,我发现ClojureScript是最好的.我找到了其他JavaScript替代品的大气/陨石包,但没有找到ClojureScript.
谢谢
我只需要重新安装linux到我的电脑,所以我一直在设置我的开发环境.我之前能够使用流星与陨石,但现在mrt命令没有做任何事情.它不会抛出错误或任何东西,我安装它sudo -H npm install -g meteorite然后,当我键入时mrt,它看起来像这样:
~ $ mrt
~ $
Run Code Online (Sandbox Code Playgroud)
我看到了一些类似的问题,但没有解决方案.我想我会尝试自己建造它,但我希望有人可能已经有了答案
当我键入mrt(mrt应该启动Meteor应用程序)时,我的Meteor应用程序会不断显示此消息:
Unexpected mongo exit code 45. Restarting.
Unexpected mongo exit code 45. Restarting.
Unexpected mongo exit code 45. Restarting.
Can't start mongod
MongoDB cannot open or obtain a lock on a file
Run Code Online (Sandbox Code Playgroud)
这样做sudo mrt,它的工作原理.
修复其他错误后我得到了这个错误.我输入以下内容修复了之前得到的错误:
sudo chmod -R 777 ./
之前,我有其他错误.但是现在我不知道它可能是什么,因为在该目录中root和我的用户之间不应该存在差异.
对于非Meteor用户:Meteor在其.meteor目录中有一点mongodb .
可能是什么原因?
这是ls -Rl .meteor/ | grep root作为普通用户执行的请求输出:
drwxrwxrwx 4 root root 4096 Jan 3 19:59 local
-rwxrwxrwx 1 root root 220 Jan 3 11:51 packages
-rwxrwxrwx 1 …Run Code Online (Sandbox Code Playgroud) 在Windows 7上使用Vagrant ssh mrt add scss(作为示例)在控制台中显示以下内容:
vagrant@vagrant:/vagrant/MyMeteorApp$ mrt add scss
scss
tag: https://github.com/fourseven/meteor-scss.git#v0.5.1.1
fs.js:730
return binding.symlink(preprocessSymlinkDestination(destination, type),
^
Error: UNKNOWN, unknown error '/vagrant/MyMeteorApp/packages/scss'
at Object.fs.symlinkSync (fs.js:730:18)
at /usr/local/lib/node_modules/meteorite/lib/dependencies/package.js:129:10
at /usr/local/lib/node_modules/meteorite/lib/sources/git.js:75:15
at ProxyWriter.<anonymous> (/usr/local/lib/node_modules/meteorite/lib.souces/git.js:138:5)
at DirWriter.EventEmitter.emit (events.js:92:17)
at end (/usr/local/lib/node_modules/meteorite/node_modules/fstream/lib/writer.js:323:12)
at /usr/local/lib/node_modules/meteorite/node_modules/fstream/lib/writer.js:313:32
at endUtimes (/usr/local/lib/node_modules/meteorite/node_modules/fstream/lib/writer.js:239:48
at setProps (/usr/local/lib/node_modules/meteorite/node_modules/fstream/lib/writer.js:296:5)
Run Code Online (Sandbox Code Playgroud)
第一次尝试安装任何Atmosphere包时会显示相同的错误.该命令"packages"在smart.json 中更新:
"packages": {
"scss": {}
}
Run Code Online (Sandbox Code Playgroud)
每当再次运行mrt时,控制台就会显示smart.json changed.. installing from smart.json并挂起.
我确实找到了包裹,/home/vagrant/.meteorite/packages/scss但它没有其他地方.
我的环境是使用Vagrant Chef配置设置的.节点版本为0.10.10.操作系统是Ubuntu.我尝试使用-H命令重新安装陨石.
任何帮助表示赞赏,我一直试图让它工作两天.
我已经向测试状态发布了一些适用于Atmosphere的软件包.现在,在开发过程中发现它们中的一些是无用的(它们被另一个消耗掉了).我该如何取消发布?
meteor ×10
meteorite ×10
javascript ×4
node.js ×3
atmosphere ×1
linux ×1
linux-mint ×1
maps ×1
mongodb ×1
passwords ×1
vagrant ×1