如何从requirejs中的子模块调用父模块方法?

时间:2015-03-20 15:58:42

标签: requirejs

我有一个有2个子模块依赖项的模块。在父模块中,有一个方法,我想从两个子模块调用。我怎么能这样做?

是否有另一种方法将父模块对象传递给子模块构造函数?

define(['child1', 'child2'], function (child1, child2) {
  return {
    init: function () {
      child1.init();
      child2.init();
    },
    parentMethod: function() {
      console.log('called');
    }
  }
});

/*child1*/
define(function() {
  return {
    init: function() {
      //call parentMethod()
    }
  }
});

/*child2*/
define(function() {
  return {
    init: function() {
      //call parentMethod()
    }
  }
});

1 个答案:

答案 0 :(得分:3)

RequireJS没有模块之间的父子关系概念。鉴于模块是单例,并且像child1这样的模块可以由多个模块加载(例如,由parent1parent2加载),那么RequireJS应该考虑哪个模块是真实的 child1的父级?

将对父母的引用传递给您孩子的init()功能真是可行的方法。