关系型FetchRelated不会获取任何东西

试图将一个backone解决方案放在一起来清理杂乱的javascript,最终会成为一个痛苦的努力。 当然,我做错了什么,但找不到任何解决方案。 该数据包含许多具有嵌套模型CarsType的车库,其中包含以下属性(名称,说明)。 每个车型在每个车库使用一次,但可以在许多车库中找到。 carType是每个车库任意排序的,所以关系表car_type / garage名称包以这种方式定义| id | garage_id | car_type_id | 位置|

每个carType都分配给许多机械师。 每个技工都可以在很多车库工作。 所以第三个嵌套级别是关系表mechanic_pack | mechanic_id | pack_id |

后端是轨道3.1吐出Json。

Garage = Backbone.RelationalModel.extend({
    relations: [
        {
            type: Backbone.HasMany, 
            key: 'Packs',
            relatedModel: 'pack',
            collectionType: 'Packs',
            reverseRelation: {
              key: 'garage',
                includeInJSON: 'id' 
            }
        }
    ],

    initialize: function(attributes) {
        this.fetchRelated("packs");
      },

    url : function() {
      var base = 'garages';
      if (this.isNew()) return base;
      return base + (base.charAt(base.length - 1) == '/' ? '' : '/') + this.id;
    }
///... more method ...

});

包集合在另一个文件中定义

Packs= Backbone.Collection.extend({
    model: Pack, 
    url: '/packs/list/:garage_id'
});

模型被正确加载,但fetchRelated不会获取并且不会引发任何错误。 Firebugs中的断点表明toFetch总是未定义的

fetchRelated: function( key, options ) {
  options || ( options = {} );
  var rel = this.getRelation( key ),
  keyContents = rel && rel.keyContents,
  toFetch = keyContents && _.select( _.isArray( keyContents ) ? keyContents : [ keyContents ], function( item ) {
  var id = _.isString( item ) || _.isNumber( item ) ? item : item[      rel.relatedModel.prototype.idAttribute ];
  return id && !Backbone.Relational.store.find( rel.relatedModel, id );
  }, this );
  if ( toFetch && toFetch.length ) { 
......

我应该如何调用fetchRelated?

第二个问题:当需要车库时,导轨发送完整的嵌套模型树。 有没有办法从最初的json回答中填充backones嵌套模型? 并能够使用自己的视图来操作每个嵌套模型?


  initialize: function(attributes) {
    this.fetchRelated("Packs");
  }

此外,在相关模型“包”和与您的收藏相关的模型之间似乎存在不一致:包

如果它仍然不起作用,你有没有尝试给你的钥匙一个不同于你的collectionType的名字?

链接地址: http://www.djcxy.com/p/65521.html

上一篇: relational FetchRelated doesn't fetch anything

下一篇: relational cannot instantiate two RelationalModel objects