假设我在Meteor项目中有以下结构
lib /
| _ base_router_controllers.js
| _ post_router_controllers.js
| _ task_router_controllers.js
base_router_controllers.js
JsonController = RouteController.extend({
action: function() {
//do things
}
});
post_router_controllers.js
PostController = JsonController.extend({
action: function() {
//do post things
}
});
task_router_controllers.js
TaskController = JsonController.extend({
action: function() {
//do task things
}
});
如果不将jsonControlleer添加到post_router_controllers.js和task_router_controllers.js,则post和task路由器控制器文件找不到json控制器。如何在不复制多个文件中的控制器代码的情况下继承JsonController?
答案 0 :(得分:2)
文件按文件名顺序加载。我当然只是把控制器放在同一个文件中 - 按照你需要的顺序。
(无论如何,lib
文件夹并不适用于路由器。我通常使用/client/routers/router.js
。)
答案 1 :(得分:1)
这是一个对我有用的模式:
来自Meteor文档
子目录中的文件在父目录中的文件之前加载,因此最先加载最深子目录中的文件(在lib之后),并且根目录中的文件最后加载(除了main。 )。*
/ lib
| __ / base /
| __ base_router_controllers.js
| __ post_router_controllers.js
| __ task_router_controllers.js
将基本RouteController放在更深的目录中。