Meteor 的加载顺序和 Angular 模块
Meteor's Load Order and Angular Modules
我的 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 会抱怨 auth 模块在 login.controller.js
中使用时无法注入。 (子目录中的文件先于父目录中的文件加载,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
│ │ ├── ...
│ ├── ...
├── ...
知道如何管理这个吗?
我想你至少有两个选择:
使 client/auth
扁平化,这样字典顺序将在 login.controller.js
.
之前加载 auth.module.js
│ │ ├── auth
│ │ │ ├── auth.module.js
│ │ │ ├── login.controller.js
│ │ │ ├── login.html
│ │ │ ├── ...
或者使用另一个 lib
子目录
│ │ ├── auth
│ │ │ ├── lib
| │ │ │ ├── auth.module.js
│ │ │ ├── login
│ │ │ │ ├── login.controller.js
│ │ │ │ ├── login.html
│ │ │ ├── ...
当然,有人可能会争辩说您的代码不应该依赖于加载顺序,即,您应该只在所有内容加载完毕后才使用授权代码,例如,在 oMeteor.startup
或 onCreate
中模板数量。
我的 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 会抱怨 auth 模块在 login.controller.js
中使用时无法注入。 (子目录中的文件先于父目录中的文件加载,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 │ │ ├── ... │ ├── ... ├── ...
知道如何管理这个吗?
我想你至少有两个选择:
使 client/auth
扁平化,这样字典顺序将在 login.controller.js
.
auth.module.js
│ │ ├── auth
│ │ │ ├── auth.module.js
│ │ │ ├── login.controller.js
│ │ │ ├── login.html
│ │ │ ├── ...
或者使用另一个 lib
子目录
│ │ ├── auth
│ │ │ ├── lib
| │ │ │ ├── auth.module.js
│ │ │ ├── login
│ │ │ │ ├── login.controller.js
│ │ │ │ ├── login.html
│ │ │ ├── ...
当然,有人可能会争辩说您的代码不应该依赖于加载顺序,即,您应该只在所有内容加载完毕后才使用授权代码,例如,在 oMeteor.startup
或 onCreate
中模板数量。