以下示例代码效果很好:
Auth_controller.prototype.isLogged = function(){
//Check if the user is authenticated
var getAuthStatus = this.auth_model.fetch();
return getAuthStatus;
};
Auth_controller.prototype.redirect = function(fragment, args, next){
var getAuthStatus = this.isLogged();
var self = this;
$.when(getAuthStatus).then(function(response){
//Do something with the response
}
});
虽然这似乎不适合收藏。
当我控制台登录集合时,我得到一个空集合。
我知道我可以在方法中使用成功回调函数(已经测试过),但我不想这样做,因为我希望函数返回一个我可以从其他函数调用的promise好。
编辑 - >不,抱歉它在成功回调中也不起作用。
有关解决方法的任何建议吗?
编辑;
此图显示了从模型和集合获取方法返回的内容 除非我做错了很明显,否则我不明白为什么会这样 当控制台在成功回调中记录返回的响应时,我看到屏幕截图中显示的空对象已填充。
Edit2:
这是我的收藏品的样子:
define([
/*--- libraries ---*/
'jquery',
'underscore',
'backbone',
/*--- model ---*/
'models/users/role_model'
], function($, _, Backbone,
Role_model){
var Role_collection = Backbone.Collection.extend({
url: '/ingeb/api_v1/users/roles',
model: Role_model
});
return Role_collection;
});
答案 0 :(得分:9)
实际上,该集合的fetch
确实会返回一个承诺:
代表Backbone.sync,负责自定义持久性策略并返回jqXHR。
请参阅http://backbonejs.org/#Collection-fetch和http://api.jquery.com/jQuery.ajax/#jqXHR