2013-08-10 4 views
1

디버거에서 App.ClassName.prototype을 입력하여 생성 한 객체의 클래스 정의를 쉽게 얻을 수 있습니다. Ok. 대단히 흥미롭지는 않지만 아직도 "엠버 어둠"을 처음 느낄 때 좋습니다. 그래도 인스턴스는 어떻습니까? 그게 내가 정말로 원하는거야.디버거에서 Ember 객체 인스턴스에 액세스

내 앱이 ActivitiesByDateRoute으로 이동하고 ActivitiesByDateController을 인스턴스화 한 경우 ActivitiesByDateController의 인스턴스가 있어야하지만 어떤 컨테이너가 저장 되나요? Ember 디버거 (일명 ember-extension)가이 문제를 파악하는 데 도움이 될지도 모른다고 생각했습니다. 나는 그것이해야한다고 생각하지만 나는 그것을 얻지 못하고있다. 다음과 같은 내용이 무엇을 의미합니까?

는 인스턴스 이름이 ember461입니다 보이지만 어떻게 디버거에서이를 조작합니까? 나는 시도했다 App.ember461 ... 가지 않는다. 나는 시도했다 App.ActivitiesByDateController.ember461 ... 또한 가지 않는다.

어쨌든 내 질문의 요지가 있습니다. 제발 도와주세요, 저는 인스턴스의 짧은 객체들입니다.

답변

3

다음은 엠버 모델을 조작하는 가장 쉬운 방법입니다. 페이지

{{ someValue }} 

바인딩 템플릿이 처음 생성되는 입력 상자

{{ input value=someValue }} 

로그 객체의 값에 값 상

단지 출력 모델의 속성 중 하나 (변경되지 않을 때). it so you이 model을 view can generated being 's while

{{ log someValue }} 

는 템플릿을 Stop.

{{ debugger }} 

출력 템플릿의 컨텍스트 (들)

{{this}} 
{{model}} 
{{controller}} 
{{view}} 

체크 아웃 경로의 setupController 후크에서 모델 구축, 또는 모델에게 전역 변수를 만드는 것처럼 끔찍한 일을도되고 어디서든 볼 수/

App.SomeRoute = Ember.Route.extend({ 
    setupController: function(controller, model) { 
     this._super(controller, model); 
     globalSomeModel = model; // I wouldn't recommend polluting the global scope except for testing etc. 
    } 
}); 

는 엠버와 사용의 일부를 잡기 위해 노력하는 (난 그냥 테스트/디버깅이 사용하는 것) 당신이 unexpe 줄 수있는 엠버 실행 루프의 외부를 조작 결과가 좋았다.

여기에 몇 가지 정보가 있습니다. 컨트롤러 인스턴스를 ember 실행 루프 외부에서 가져 오는 방법에 관한 또 다른 게시물입니다.

var controller = Application.__container__.lookup('controller:someCamelCaseName'); 

내가 언급 이전의 것들 중 일부는 디버거에서 http://jsbin.com/efajen/1/edit

+0

안녕 다니엘.당신이 언급 한 : 템플릿의 출력 컨텍스트 (들) 를 건설되고 {{이}} {{모델}} {{컨트롤러}} {{보기}}
당신은 그것을 자세한 사항 나를 설명 할 수 있을까요? 그것을하는 방법? –

+2

이렇게하면 dom에 인쇄됩니다. 콘솔에 출력하고 싶다면 {{log}}, {{log model}}, {{log controller}}, {{log view}}} 앞에 log 키워드를 추가하면됩니다. – Kingpin2k

2

지금이 jsbin에서 볼 수 있습니다 (내 말은 엠버 - 확장 플러그인), 해당 요소를 클릭하고 검색 할 수 있습니다 그것은 콘솔에서 $ E를 통해.

관련 문제