1

假设我在 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 和任务路由器控制器文件无法找到 json 控制器。如何在不复制多个文件中的控制器代码的情况下继承 JsonController?

4

2 回答 2

2

文件按文件名顺序加载。我会简单地将控制器放在同一个文件中——当然,按照您需要它们的顺序。

(无论如何,该lib文件夹并不是真正用于路由器的。我通常使用/client/routers/router.js。)

于 2014-02-13T22:28:59.033 回答
1

这是一个对我有用的模式:

来自 Meteor 文档

子目录中的文件在父目录中的文件之前加载,因此最深的子目录中的文件首先加载(在 lib 之后),并且根目录中的文件最后加载(除了 main.)。*

/lib
|__ /base/
     |__ base_router_controllers.js
|__ post_router_controllers.js
|__ task_router_controllers.js

只需将基本 RouteController(s) 放在更深的目录中即可。

于 2014-02-14T18:36:14.047 回答