2012-03-04 2 views
4

저는 ember.js 앱의 밀접하게 연결된 부분, 특히 컨트롤러에 대한 뷰와 템플릿을 재구성하려고합니다.Ember.js : 컨트롤러에서 뷰를 분리하려면 어떻게해야합니까?

모든 예제 나는 뷰의 클래스 정의에있는 컨트롤러에 뷰를 직접 바인드하거나 (글로벌) 컨트롤러 경로를 템플릿 자체의 뷰로 전달합니다.

TargetActionSupport mixin (sproutcore의 DelegateSupport가 생각하는 것)은 좋은 후보로 보이지만 대상 (컨트롤러) 및 작업이 템플릿 자체에서 설정되어야합니다. 하지만 잘 모르겠어요 :

적으로는, 내가 내 컨트롤러 (어떻게 든), 목표와 행동을 설정할 수 있지만 또한 내 템플릿 (정적 클래스, 아이디 예)에서 표현 적 변수를 설정에서 내 의견을 인스턴스화하고 싶습니다 이것을 달성하는 방법, 또는 그것이 올바른 접근인지 여부

+0

MVC의 인수가 명확합니다. 컨트롤러는 모델에서 수행 할 수있는 정의 된 작업 집합을 추가합니다. JSP 페이지가 데이터를 직접 변경한다고 말하는 largish 프로젝트를 수행 한 사람은 누구나 이유를 알고 있습니다. 필자의 견해로는 충분한 추상화이다 (추상화는 비용 부담으로 생각된다). 한 걸음 나아 가기위한 목적은 무엇입니까? –

답변

5

프로그래밍 방식으로 당신이 원하는 위치보기를 인스턴스화하고 DOM에 삽입 할 수 있습니다 : 전역 바인딩 경로를 제거하려는 경우 인스턴스에 뷰 컨트롤러 참조 전달할 수

var view = Ember.View.create(); 
view.appendTo('#someElement'); 

:

var controller = Ember.Object.create({content: {}}), 
    view = Ember.View.create({ 
     controller: controller, 
     contentBinding: 'controller.content' 
    }); 

Ember StateManager를 살펴 보시기 바랍니다.

관련 문제