18

コンテナモジュールの目的が最新のEmberにあることを誰かが説明できますか?

セットアップおよびこのテストの開始時の使用例:

module("Ember.View - handlebars integration", {
  setup: function() {
    Ember.lookup = lookup = { Ember: Ember };
    lookup.TemplateTests = TemplateTests = Ember.Namespace.create();

    container = new Ember.Container();
    container.optionsForType('template', { instantiate: false });
  }

test("template view should call the function of the associated template", function() {
  container.register('template', 'testTemplate', Ember.Handlebars.compile("<h1 id='twas-called'>template was called</h1>"));
4

2 に答える 2

34

コンテナの目的は、これまで使用していたアドホックなアプローチよりも、モジュールの依存関係を記述するためのより汎用的なメカニズムを提供することです。

たとえば、postルートのコントローラーを見つけたいとします。デフォルトのEmberルールでは、として検索しますApp.PostController。コンテナの前に、ルックアップを実行する必要がある場所(classifyおよびフレンドを使用)でこれらのルールをハードコーディングします。

コンテナは、これらのルールを1か所で定義する方法を提供します。ボーナスとして、別の規則が必要なアプリケーションのルールをオーバーライドできます。

したがって、Ember.get(namespace, Ember.String.classify(name) + 'Controller')内部ではなく、現在はを実行していますcontainer.lookup('controller:' + name)

于 2012-12-30T07:35:49.077 に答える
2

内部使用を目的としています。

パブリックAPIを意図したものではありません

https://github.com/emberjs/ember.js/commit/5becdc4467573f80a5c5dbb51d97c6b9239714a8

于 2013-01-07T10:12:45.450 に答える