2013-07-24 5 views
1

나는 매우 유사하게 행동하는 여러 오브젝트를 가지고있다. 해당 객체와 관련된 컨트롤러에 대한 기본 구현을 제공하고 해당 컨트롤러를 약간 사용자 정의하려면 extend 컨트롤러를 제공하고 싶습니다. 나는이 같은 일을 오전 :다른 경로에 대한 컨트롤러 재사용에 대한 생각

App.BaseIndexController = Ember.ArrayController.extend({ 
    ... 
}); 

을 그리고 지금은 내 실제 개체 컨트롤러 정의하는 기본 컨트롤러를 사용합니다 :

  1. 이 거기에 어떤 : 나는이 개 질문이

    App.AgentsIndexController = App.BaseIndexController.extend({ 
        .... 
    }); 
    

    을 이런 종류의 재사용을 방해하는 일반적인 코멘트는 무엇입니까?

  2. extend 메커니즘은 동일한 기본 컨트롤러를 확장하는 컨트롤러간에 상태 데이터가 "누설되지"않도록 일반 컨트롤러 구현을 다시 사용하는 올바른 방법입니까?
+0

기본 동작에 대해 'Ember.Mixin'을 정의하고이 함수를 사용하는 것이 더 낫다고 생각합니다. App.AgentsIndexController = Ember.ArrayController.extend (BaseIndexControllerMixin, {}); – herom

답변

1
당신은 당신이 제시 한대로 그것을 할,하지만이 시작된 한 경우 App.BaseIndexController에 정의 된 모든 속성

Mixins도 작업 할 수 있습니다 (일반적인 실수에 대한 check this out)를 통해 누출 않습니다 수 있습니다

다시 재사용 할 수 있기 때문에 그렇습니다. Ember는 내부적으로 많은 것을 Mixins으로 사용하기 때문에 이러한 접근 방식으로 잘못 될 수는 없습니다.