我正在将Meteor与另一个CMS一起使用,并且正在创建一个包含我需要运行Meteor的变量的URL(例如http://site.com?a=flash&b=hash)。如何使这些变量可用,并让Meteor忽略它作为一个位置?当我加载这样的网址时,我的应用无法正确加载,大概是因为它认为我在请求其他位置。
答案 0 :(得分:1)
除非你使用例如,否则在Meteor中使用查询字符串应该没有效果。 Meteor Router根据当前URL调用不同的方法。
如果要解析查询字符串,只需用手动解析即可。 (在coffeescript中)
querystring: ->
qs = {}
for pair in window.location.search.replace("?", "").split "&"
[k, v] = pair.split("=")
qs[k] = v
qs
将返回如下对象:
{ "a": "flash", "b": "hash" }
答案 1 :(得分:1)
使用iron路由器,如果url中有查询字符串或散列片段,则可以使用this.params对象的查询和散列属性访问那些。
// given the url: "/post/5?q=s#hashFrag"
Router.route('/post/:_id', function () {
var id = this.params._id;
var query = this.params.query;
// query.q -> "s"
var hash = this.params.hash; // "hashFrag"
});