gpt4 book ai didi

javascript - Backbone 获取URL参数

转载 作者:行者123 更新时间:2023-12-03 10:24:33 27 4
gpt4 key购买 nike

我有一个 Backbone js 应用程序,当我转到 URL domain.com/item/1 或 domain/item/2` 等时运行。当应用程序启动时,我创建一个新实例我的模型并向其传递一个 id,该 id 需要是 URL 的最后部分。有没有办法在 Backbone 中访问它?

我知道构建一个可以在哈希后访问参数的路由器很容易,因此我最好将 URL 更改为类似 domain.com/item/1#1

最佳答案

我不知道您是否有 Backbone 路由器。但这可以通过 Backbone.router 的基本用途之一轻松实现。并且您不必使用 # 或任何内容。您可以访问斜杠之间的任何内容。

routes: {
"item/:page": function(page){
//page holds the query parameter.
}
}

The routes hash maps URLs with parameters to functions on your router (or just direct function definitions, if you prefer), similar to the View's events hash. Routes can contain parameter parts, :param, which match a single URL component between slashes; and splat parts *splat, which can match any number of URL components. Part of a route can be made optional by surrounding it in parentheses (/:optional).

详细信息请阅读文档中的 Backbone.router 部分。

http://backbonejs.org/#Router

仅供引用,将查询参数传递给模型不应在用户启动应用程序时执行,而是在调用 routes 时执行。否则每次要更改页面时,您都需要更改 url 并重新加载整个页面。

通常 Controller 会创建模型实例,这意味着,您最好在路由器中创建带有参数的 Controller 实例,然后在 Controller 中创建模型。类似这样的

routes: {
"item/:page": function(page){
var page = new YourNameSpace.Controller.Foo({pageId : page});
page.render();
}
}

//inside of Itempage Controller
initialize : function(){
this.model = new YourNameSpace.Model.Foo({pageId : this.pageId});
}

关于javascript - Backbone 获取URL参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29463463/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com