单个文件SPA中的多个模块

时间:2013-11-11 06:41:32

标签: knockout.js module durandal single-page-application

我的要求很小。我刚刚开始研究简单的SPA应用程序。我的要求是在.js文件中写入类,我应该能够在另一个.js文件中调用单个类。

简而言之,我在一个.js文件中有Search,Order和Customer类。

*globals define*/
define(function(require){
   ...

      return search;
}); 
define(function(require){
   ...

      return order;
}); 
define(function(require){
   ...

      return customer;
}); 

我想打电话给上面的任何一个模块。有没有解决方案。?

谢谢,
希瓦

1 个答案:

答案 0 :(得分:2)

这种方式是不允许的。这个问题还有其他解决方案。

Durandal中的模块由AMD库RequireJS处理。在图书馆的文档中,它说:

  

每个文件一个模块。:每个JavaScript只应定义一个模块   文件,给定模块名称到文件路径查找的性质   算法。多个模块将被分组为优化文件   优化工具,但您应该只使用优化工具   将多个模块放在一个文件中。

如上所述,一种选择是将多个模块(多个文件)优化到一个文件中。 (Optimization doc

或者您可以定义一个内部有多个对象的模块,如此stackoverflow answer中所述。使用此方法,您将无法分开加载对象,因此即使只需要一个对象,也始终需要加载search, ordercustomer个对象。