我还有其他可能处理 Ember.Router Controller 和 View 吗?我的应用程序结构通常依赖于 require.js,它负责处理相应的依赖项。
在我的示例中,我将 App.ApplicationController 作为主路由器 Controller 。
这是一个 jsfiddle:http://jsfiddle.net/mediastuttgart/uMKGt/1/
但是有机会手动设置吗?我发现了这条提交信息 https://github.com/emberjs/ember.js/commit/be69395f5eec4187b1df052d7386bcda45f79475在我可以看到的地方,如何设置 Controller 并手动查看(无论如何都无法正常工作)。但找不到任何示例,例如:
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 来管理或依赖时,我们有多个 Controller ,它们负责整个应用程序的各自部分。假设我们有一个时事通讯注册表单。用于此场景的 Controller 结构为
- app
-- controller
--- newsletter
---- signup.js
--- cart
--- checkout
-- view
-- model
-- router
-- template
当我们使用自定义函数生成命名空间 Em.Provide('App.Controller.Newsletter');
时,它会在 App.Controller.Newsletter
中创建一个对象。该对象现在用作我们整个时事通讯应用程序的 Controller 基础。从 App.Controller.Newsletter.Signup = Ember.Controller.extend({});
开始,我们需要将此实例作为路由器的“ApplicationController”传递。如您所见,我们不能只使用 App.ApplicationController
为 Ember.Router 实例化 Controller 。
最佳答案
对requirejs一无所知,但我认为唯一的事情就是定义一个
App.ApplicationController = Ember.Controller.extend({...behavior here...})
然后,在调用时
App.initialize()
然后框架会在路由器中自动注入(inject)这个 Controller 。
关于javascript - 我如何在 Ember.Router 中设置 ApplicationController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11192668/