骨干/需要循环依赖

时间:2014-05-20 18:43:57

标签: javascript backbone.js requirejs circular-dependency

鉴于我有模型mA,集合cA,模型mB和集合cB。

mA包含作为集合cB的成员。 mB包含一个模型mA的成员。类型A的模型是B类的父母。当我创建父母时,我想要所有的孩子。当我创建一个孩子/孩子时,我想要那个孩子的父母。然而,这创造了一个循环。我的问题有两个问题。我遇到的第一个问题是,在mB中,我在创建新集合cA时在行var modelA = new mA();上得到“未定义不是函数”。删除它们的相互依赖性会阻止错误,但对我没有帮助。我的第二个问题是如何知道mB是否是从mA创建的,如果不是,则不创建新的cA成员。

define(['cB'],function(cB){
  var mA = Backbone.Model.extend({
    parse:function(res,opt){
      var colB = new cB(res.id);
      colB.fetch();
      res.children = colB;
      return res;
    }
  });
  return mA;
});

define(['mA'],function(mA){
  var mB = Backbone.Model.extend({
    parse:function(res,opt){
      var modelA = new mA();
      modelA.set({id:res.parent_id})
      modelA.fetch();
      res.parent = modelA;
      return res;
    }
  });
  return mB;
});
var colA = new cA();
  1. 如果没有“未定义不是函数”错误,如何定义每个文件需要另一个文件?
  2. mB如何知道它是否是从mA创建的?

0 个答案:

没有答案