这是骨干js的新手问题
我想问一下是否可以在每个模型方法上使用不同的API网址
var login = Backbone.Model.extend({
urlRoot: apiUrl + 'member/login'
initialize: function () {
console.log('initialize')
},
logInEmail: function () {
// will use urlRoot
},
validateEmail: function (emailToValidate) {
// will use this url
// apiUrl + 'member/validate'
}
});
答案 0 :(得分:0)
是的,这是可能的。
只需更改this.urlRoot
即可。
对于您的示例,它将如下所示:
var login = Backbone.Model.extend({
urlRoot: 'member/login',
otherApiUrl: 'othermember/login',
initialize: function () {
console.log('initialize')
},
logInEmail: function () {
// will use urlRoot
},
validateEmail: function (emailToValidate) {
this.urlRoot = this.otherApiUrl;
// will use otherApiUrl
}
});
请务必在需要时放回右侧urlRoot
。
是的,应该遵守CORS个问题。
修改强>
Backbone包含负责RESTful JSON接口的Backbone.sync。
validateEmail
方法可以使用简单的$ .ajax和otherApi
网址。然后它将返回promise对象,您可以在其上调用您的成功函数。
通过Backbone实现此目的的其他方法,您应该初始化new Backbone.Model
以Backbone方式执行相同的任务。我猜你的情况$ .ajax将是更好的选择。