我有一个像这样的角度工厂:
myApp.factory('parse', [function () {
var parse = {};
parse.a = {};
parse.a.x = function () { /* ..., call parse.b.x */ };
parse.a.y = function () { /* ... */ };
parse.b = {};
parse.b.x = function () { /* ..., call parse.a.y */ };
/* ... */
return parse;
}]);
通过向parse
添加更多属性,文件越来越大。 (目前大约2K行)所以也许是时候拆分成多个文件了。
这里的一个问题是这些函数有一些依赖性。简单地将parse.a
,parse.b
,...分成每个文件只会导致循环依赖。
如何将此文件拆分为多个文件?
我更喜欢:
parse.a.*
)答案 0 :(得分:1)
实际上这取决于你如何构建项目 - 每个/某些构建工具都有自己的方法来处理这些情况。
只需角度你就可以使用$ injector来避免循环依赖 - 这一般来说不是很酷,但是你可以做任何事情,例如:
myApp.factory('parseA', ['$injector', function ($injector) {
var parseA = {};
/* can not access parseB here*/
parseA.x = function () {
/* can access parseB here */
return $injector.get('parseB').x();
};
parseA.y = function () { /* ... */ };
/* ... */
return parse;
}]);
myApp.factory('parseB', ['$injector', function ($injector) {
var parse = {};
parse.b.x = function () { return $injector.get('parseA').y() };
/* ... */
return parse;
}]);