2012-06-12 7 views
3

Ember가 객체 모음을 반복하여 페이지에 출력하면 (사이드 바에있는 링크 목록) Ember는 각 요소에 대한 컨텍스트를 만듭니다. 해당 항목을 클릭하면 Ember는 해당 요소를 컨텍스트로 메서드에 전달합니다.Ember.js에 가짜 "컨텍스트"만들기

어떻게하면 해당 컨텍스트의 가짜 버전을 만들 수 있습니까? 본질적으로 onclick 이벤트의 컨텍스트를받는 메서드를 재사용하고 싶습니다.

+0

정확히 무엇을하려는 것일까 요? 나는 그것을 얻었을 것이라고 생각하지만, 나는 당신에게 잘못된 것을 말하기 전에 확실히하고 싶습니다. –

+0

나는 그보다 더 잘할 수있다. http://andymatthews.net/code/PM/ 내 질문은 두 가지 방식으로 작용한다. 클라이언트를 추가 한 다음 해당 클라이언트를 "현재 선택된"상태로 만듭니다. 내 생각에는 가짜 컨텍스트를 내 loadProjects 메서드에 전달합니다. 프로젝트를 추가 할 때와 마찬가지로 ... 이미 새로 생성 된 프로젝트가 있기 때문에 나타나지 않습니다. 프로젝트를 전달할 수도 있습니다. – commadelimited

답변

0

잘 모르겠지만 질문을 이해하지만 한 번 시도해 보겠습니다. 나는 당신이 성취하고자하는 것이 문맥을 곧게 세우는 것만으로도 가능하다고 생각하며, 아마도 그 견해를 무시해야 할 것입니다.

clientsArray 
.... 
    loadProjects: function(view){ 
     this.set('currentClient', view.context); 
    }, 

    _setProject: function(){ 
     console.log('loading projects'); 

     var context = this.get('currentClient'); 
     PM.projectsArray.set('content', []); 
     PM.projectsArray.pushObjects(context.get('projects')); 
    }.observes('currentClient') 
.... 

는 그런 다음 'addProject'방법에 단지 새로운 컨텍스트 (당신의 '프로젝트'개체)에 (clientArray 단위) 'currentClient'을 설정합니다. 관찰자는 그 것을 집어 들고 나머지는 돌볼 것입니다. 변화에 대한 가치를 관찰하고 이에 따라 상황을 업데이트 할 수 있다는 것이 엠버의 강점 중 하나입니다. 그것은 당신이 많은 노골적인 작업을 할 필요가 없게합니다. 모든 부트 스트래핑 코드를 직접 작성하지 않아도되므로 프레임 워크가 작동합니다. 가짜보기를 만들면 코드가 복잡해집니다.

+0

나는 일반적으로 코드를 수정하고 평상시와 같이 실행하지 못하기 때문에 개인적으로 바이올린만큼 유용하다고 생각하지 않습니다. 또한 바이올린을 작성하면 코드를 매우 구체적인 문제로 줄일 수 있으므로 사이트에서 진행되는 모든 작업의 ​​추가 오버 헤드에 대해 걱정할 필요가 없습니다. – SciSpear