我如何可以设置Ember.Router的ApplicationController中(How can

2019-07-30 02:48发布

我还有其他的可能性,以处理与Ember.Router控制器和意见? 我的应用程序结构通常取决于require.js这需要相应的依赖护理。

在我的例子我做的App.ApplicationController东西主路由器控制器。

这里有一个的jsfiddle: http://jsfiddle.net/mediastuttgart/uMKGt/1/

但是否有任何机会,以手动设置呢? 我发现这个提交信息https://github.com/emberjs/ember.js/commit/be69395f5eec4187b1df052d7386bcda45f79475在那里我可以看到,如何手动设置控制器和视图(反正不能得到这个工作)。 但是找不到像任何例子:

App = Ember.Application.create();

App.MyController = Ember.Controller.extend({});
App.MyView = Ember.View.extend({});

Router = Ember.Router.extend({
    applicationController : App.MyController,
    root : Ember.Route.extend({
        index : Ember.Route.extend({
            route : '/',
            connectOutlets : function (router) {
                router.get('applicationController').connectOutlet(App.MyView);
            }
        })
    }),
    ...
});

编辑

我想详细一点点解释。 虽然我们使用require.js管理或依赖关系,我们有多个控制器,这是对自己负责整个应用程序的部分。 比方说,我们有一个简报注册表单。 采用此方案的控制器的结构

- app
-- controller
--- newsletter
---- signup.js
--- cart
--- checkout
-- view
-- model
-- router
-- template

当我们使用自定义函数生成的命名空间Em.Provide('App.Controller.Newsletter'); 这产生在物体App.Controller.Newsletter 。 这个对象现在作为控制器基地对我们整个的通讯应用。 开头App.Controller.Newsletter.Signup = Ember.Controller.extend({}); 我们需要在这种情况下通过的“ApplicationController中”为路由器。 正如你所看到的,我们不能只用App.ApplicationController实例为Ember.Router控制器。

Answer 1:

不知道什么requirejs,但我想的唯一事情就是定义一个

App.ApplicationController = Ember.Controller.extend({...behavior here...})

然后,打电话时

App.initialize()

然后,框架将自动注入该控制器在路由器。



文章来源: How can i set the ApplicationController in Ember.Router