He estado intentando poner esto en funcionamiento desde hace un tiempo. Básicamente tengo una API de reposo como back-end que devuelve json, todo bien.fetchRelated not fetching related
El problema que tengo es con backbone-relational. Estoy seguro de que me equivoqué con algo pero he estado buscando en las redes por un tiempo y no he podido encontrar nada para ayudar.
Estoy tratando de obtener una relación entre el modelo "Profesión" y "Arma". Aquí está mi código para que:
Profession = Backbone.RelationalModel.extend({
urlRoot: '../api/professions',
relations: [{
type: Backbone.HasMany,
key: 'weapons',
relatedModel: 'Weapon',
collectionType: 'Weapons',
reverseRelation: {
key: 'profession',
includeInJSON: 'id',
keySource: 'profession_id'
}
}]
});
Weapon = Backbone.RelationalModel.extend({
urlRoot: '../api/weapons'
});
Weapons = Backbone.Collection.extend({
model: Weapon,
url: function(models){
return '../api/weapons';
}
});
y un llamado a aquellos parámetros API muestra:
{name: "Profession1", id: 1}
[{name: "Weapon1", profession_id: 1}, {name: "Weapon2", profession_id: 1}]
Por lo tanto, si he entendido bien un profession.fetchRelated('weapons')
deben enviar un HttpRequest a la dirección URL de la colección de armas y tirar el objeto que tiene un profession_id de 1. Pero no pasa nada cuando ejecuto profession.fetchRelated('weapons')
Gracias por la aclaración. Tal vez debería simplemente cambiar la respuesta de la API para incluir los modelos anidados, ya que quiero que estén disponibles tan pronto como se obtenga la "profesión". – JonasFromell
El problema que encuentro es cuando tienes docenas de profesiones, cada una con docenas de armas superpuestas. Incluir el objeto arma completo con cada profesión genera una gran cantidad de datos redundantes. Es genial para este pequeño ejemplo, pero para una aplicación grande, no es tan factible. –