2

Ember.js の「controller.controllers」とは何ですか?

のようだ

this.getPath("controller.controllers") 

ビューで App.router を返します。それは非常に便利ですが、私が何をしているのか理解したいです:-)

4

1 に答える 1

4

で呼び出すinitializeEmber.Application、すべてのコントローラがインスタンス化され、ルータに設定されます。コントローラーは、ここで実装されているように、注入されたいくつかのプロパティも取得します。ご覧のとおり、controllersプロパティはルーターへの参照です。

Ember.Application.registerInjection({
  name: 'controllers',
  injection: function(app, router, property) {
    if (!/^[A-Z].*Controller$/.test(property)) { return; }

    var name = property.charAt(0).toLowerCase() + property.substr(1),
        controller = app[property].create();

    router.set(name, controller);

    controller.setProperties({
      target: router,
      controllers: router,
      namespace: app
    });
  }
});
于 2012-07-22T18:07:23.607 に答える