如何获取Backbone中的url参数?

How to get url parameters in Backbone?

我正在使用 Backbone 和 Marionette。

我有一个 link <a> 标签,我在其中传递了几个参数,如何使用 Backbone 在其他页面中提取这些值?

<a href="http://localhost.com:8080/help/?name=matth&age=25&email=matt@gmail.com">View Details</a>

地址栏url:

http://localhost.com:8080/help/?name=matth&age=25&email=matt@gmail.com 44

使用Php,这很简单:

$Url = $_GET['state']."#".$_GET['city']; 

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

如果路由是这样定义的:

'help/:name&:age&:email' : 'help'

然后您可以在 help 函数 中访问这些参数,只需在方法的签名中定义它们(在 backbone路由器),

help: function(name, age, email) {
    // do whatever you want with the params
}

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

name="XXX" age="XXX"

所以正确的路线是

'help/?(name=:name)(&age=:age)(&email=:email)' : 'help'

括号中的部分是可选的。

Backbone docs

Routes can contain parameter parts, :param


注意顺序很重要,后面的url不会触发路由回调。注意 emailage 参数位置。

help/?name=test&email=test%40example.com&age=6

为了触发路由而不考虑参数的数量及其顺序,请查看如何在路由函数中parse the query string,但这并不总是有效。