如何在Backbone中获取url参数?

Kha*_*lid 4 javascript query-string backbone.js backbone-routing

我正在使用Backbone和Marionette.

我有一个链接<a>标记,我传递的参数很少,如何使用Backbone在其他页面中提取这些值?

<a href="http://localhost.com:8080/help/?name=matth&age=25&email=matt@gmail.com">View Details</a>
Run Code Online (Sandbox Code Playgroud)

地址栏网址:

http://localhost.com:8080/help/?name=matth&age=25&email=matt@gmail.com 44
Run Code Online (Sandbox Code Playgroud)

使用Php,这很简单:

$Url = $_GET['state']."#".$_GET['city']; 
Run Code Online (Sandbox Code Playgroud)

如何在我的Backbone应用程序中实现它?

Rya*_*ker 5

如果路由定义如下:

'help/:name&:age&:email' : 'help'
Run Code Online (Sandbox Code Playgroud)

然后你可以通过在方法的签名中定义它们(在骨干路由器中)来访问help函数中的那些参数,

help: function(name, age, email) {
    // do whatever you want with the params
}
Run Code Online (Sandbox Code Playgroud)

在你的情况下,这将给你这样的参数:

name="XXX" age="XXX"
Run Code Online (Sandbox Code Playgroud)

所以正确的路由将是

'help/?(name=:name)(&age=:age)(&email=:email)' : 'help'
Run Code Online (Sandbox Code Playgroud)

括号中的一部分是可选的.

Backbone文档

路由可以包含参数部分, :param


请注意,订单很重要,以下网址不会触发路由回调.注意emailageparams放置.

help/?name=test&email=test%40example.com&age=6
Run Code Online (Sandbox Code Playgroud)

无论params的数量及其排序如何触发路由,请查看如何在路由函数中解析查询字符串,但这并不总是有效.