Как я могу установить ApplicationController в Ember.Router

Есть ли другая возможность работать с контроллерами и представлениями 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. Контроллер.Информационный бюллетень. Этот объект теперь служит базой контроллера для всего нашего приложения для рассылки новостей. Начиная с App.Controller.Newsletter.Signup = Ember.Controller.extend({});нам нужно передать этот экземпляр как «ApplicationController» для маршрутизатора. Как видите, мы не можем просто использовать App.ApplicationControllerдля создания экземпляра контроллера для Ember.Router.

5
задан sly7_7 14 January 2013 в 20:28
поделиться