我正在使用路由器和所有的骨干应用程序,我在从网址获取查询参数时面临一个问题,我没有找到任何直接的方法来解决它。
我有一个像test.com/main/page1?state=code&value=blaa
的网址我想用骨干路由器的方式从url中获取state和value的值。请帮我找一个解决方案。
答案 0 :(得分:4)
他们为您创建了Execute
,可以在调用路由之前执行诸如解析查询字符串等功能。
更多信息:http://backbonejs.org/#Router-execute
答案 1 :(得分:1)
@Prats:是的,您可以通过以下方式获取中间页面(不是主页)url参数值。
<强> router.js 强>
backboneApp.Routers.MyrouterRouter = Backbone.Router.extend({
routes:{
"" : "routeToList",
"register" : "routeToRegister",
//Here the actual url along with the fragment(parameters)
"edit/:id" : "routeToEdit"
},
.
.
.
//Other functions.
.
.
.
//sending the url fragment to render() function....
routeToEdit: function(id)
{
this.editView = new backboneApp.Views.EditView();
//Note, this render function from the corresponding view,
//can receive the extra fragment(parameter)
this.editView.render(id);
this.$content.html(this.editView.el);
}
});
<强> edit.js 强>
backboneApp.Views.EditView = Backbone.View.extend({
.
.
.
// some other functions....
.
.
.
render: function(id)
{
// The id which I passed received here, from here you can
// manipulate as you wanted.
});
}
});
注意:我已将url用作edit /:id,用于路由。根据您的要求,您可以通过使用constant-url /:variable-fragment在routes方法中使用您的url,以便将此变量片段传递给相应视图的render()函数。在那里,您可以根据需要操作参数。如果您遵循上述相同的概念但是需要更多的努力,也可以使用多个参数。希望这会对你有所帮助。