gpt4 book ai didi

javascript - 从 URL 问题获取模型

转载 作者:行者123 更新时间:2023-12-03 12:16:42 25 4
gpt4 key购买 nike

我有一个主干 js 应用程序,它有一个看起来像这样的路由器:

var StoreRouter = Backbone.Router.extend({
routes: {
'stores/edit/:id': 'edit'
},
edit: function(id){
var store = new Store({id: id});
store.fetch({success: function(){
var editStoresView = new EditStoresView({
el: ".wrapper",
model: store
});
}});
}
});
var storeRouter = new StoreRouter();
Backbone.history.start({ pushState: true, hashChange: false });

我的模型看起来像:

var Store = Backbone.Model.extend({
urlRoot: function(){
if (this.isNew()){
return "/stores";
} else {
return "/stores/" + this.id;
}
}
});

在 Chrome 的 JS 控制台中,显示有一个针对 /stores 网址的 GET 请求,而它应该向 /stores/ID_HERE 发出请求>.

最佳答案

主干uses a model's id field to determine if it's new or not ,并且在构建它时将其传递进去。

您可以跳过一些步骤在编辑时延迟加载模型 - 也就是说,在尝试编辑时仅获取 - 但更改您的urlRoot可能更容易> 属性为简单的“/stores/”。 Backbone will use that urlRoot property, along with the model's ID, to construct the URL 。这是有道理的;如果您有一个 id 为 3 的 Store 模型,则无论其"new"状态如何,您都需要点击“/stores/3”来加载它。

如果您怀疑您的应用可以构建没有 ID 的 Store,您可能需要覆盖 Storeurl如果在没有 ID 的模型上调用该函数,则会抛出异常。

关于javascript - 从 URL 问题获取模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24658707/

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