如何为 Backbone 中集合和模型的所有请求设置默认 url/服务器?
示例集合:
define([
'backbone',
'../models/communityModel'
], function(Backbone, CommunityModel){
return Backbone.Collection.extend({
url: '/communities', // localhost/communities should be api.local/communities
model: CommunityModel,
initialize: function () {
// something
}
});
});
我进行初始 AJAX 调用来获取我的设置,包括 API 的 url (api.local)。
如何重新路由请求而不将其传递给我的所有模型或对模型和集合中的 url 进行硬编码?
你的 url 接受一个字符串或一个函数。
通过您的设置 ajax 调用,您可以将其存储在正确的位置,
然后从函数中获取它
使用你的例子:
假设您的 ajax 调用将 url 保存在myApp.Settings.DefaultURL
define([
'backbone',
'../models/communityModel'
], function(Backbone, CommunityModel){
return Backbone.Collection.extend({
url: function(){
return myApp.Settings.DefaultURL + '/communities';
},
model: CommunityModel,
initialize: function () {
// something
}
});
});
remark确保在设置之前触发该 url 时以某种方式捕获或处理该 url,如果您的初始 ajax 调用失败或需要时间,您的应用程序可能已经在没有设置设置的情况下启动,如果有人使用model.save()
到那时,你就需要处理这个问题了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)