javascript - template - ¿Por qué Backbone Collection no devuelve una promesa?
backbonejs github (1)
El siguiente código de ejemplo funciona bien:
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
}
});
Sin embargo, esto no parece funcionar para una Colección.
Cuando la consola registra la colección, recupero una colección vacía.
Sé que puedo usar la función de devolución de llamada correcta desde el método (ya probado), pero no quiero hacerlo, porque quiero que la función devuelva la promesa de que también puedo llamar desde otras funciones.
Editar -> No, lo siento, pero tampoco funciona en la devolución de llamada correcta.
¿Alguna sugerencia para una solución alternativa?
Editar;
Esta imagen muestra qué devuelve el modelo y los métodos de obtención de recopilación.
A menos que esté haciendo algo mal que es obvio, no entiendo por qué sucede esto.
Cuando la consola registra la respuesta devuelta en la devolución de llamada exitosa, veo que el objeto vacío como se muestra en la captura de pantalla se llena.
Edit2:
Así es como se ve mi colección:
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;
});
En realidad, la fetch
la colección devuelve una promesa:
Delega a Backbone.sync bajo las coberturas para estrategias de persistencia personalizadas y devuelve un jqXHR.
Ver http://backbonejs.org/#Collection-fetch y http://api.jquery.com/jQuery.ajax/#jqXHR