Meteor的加载顺序和角度模块

时间:2016-02-13 14:42:43

标签: angularjs meteor directory-structure

我的Angular-Meteor-app的文件夹结构如下所示:

.
├── client
│   ├── app
│   │   ├── auth
│   │   │   ├── login
│   │   │   │   ├── login.controller.js
│   │   │   │   ├── login.html
│   │   │   ├── register
│   │   │   │   ├── ...
│   │   │   ├── reset-password
│   │   │   │   ├── ...
│   │   │   ├── route.config.js
│   │   ├── lib
│   │   │   ├── app.module.js
│   │   │   ├── auth.module.js
│   │   ├── ...
│   ├── ...
├── ...

请注意,由于Meteor的加载顺序,我无法将auth.module.js放在auth目录下,但必须将其放在lib目录下。否则,Angular会抱怨在login.controller.js中使用 auth 模块时无法注入。 (子目录中的文件在父目录中的文件之前加载,lib中的所有文件都在其他所有文件之前移动。)

我希望将auth.module.js移到auth文件夹中,因此我将 auth 模块的所有文件放在正确的位置:

.
├── client
│   ├── app
│   │   ├── auth
│   │   │   ├── login
│   │   │   │   ├── login.controller.js
│   │   │   │   ├── login.html
│   │   │   ├── register
│   │   │   │   ├── ...
│   │   │   ├── reset-password
│   │   │   │   ├── ...
│   │   │   ├── auth.module.js
│   │   │   ├── route.config.js
│   │   ├── lib
│   │   │   ├── app.module.js
│   │   ├── ...
│   ├── ...
├── ...

知道如何管理吗?

1 个答案:

答案 0 :(得分:1)

我认为你至少有两个选择:

client/auth设为平,以便字典排序在auth.module.js之前加载login.controller.js

│   │   ├── auth
│   │   │   ├── auth.module.js
│   │   │   ├── login.controller.js
│   │   │   ├── login.html
│   │   │   ├── ...

或者使用另一个lib子目录

│   │   ├── auth
│   │   │   ├── lib
|   │   │   │   ├── auth.module.js
│   │   │   ├── login
│   │   │   │   ├── login.controller.js
│   │   │   │   ├── login.html
│   │   │   ├── ...

当然,有人可能会争辩说你的代码不应该依赖于加载顺序,即你应该只在加载所有内容后使用auth代码,例如,在模板的oMeteor.startuponCreate