2012-09-08 6 views
4

Ember에게보기를 다시 렌더링하지 않도록 지시하는 방법이 있습니까?보기 재 렌더링을 방지합니다.

간단한 사용 사례 :

은 동적으로 채워지는 클라이언트 목록을 가지고있다. 목록에서 클라이언트를 클릭하면 클라이언트 세부 정보 페이지로 이동합니다. "뒤로"를 클릭하면 정확하게 클라이언트 목록의 동일한 위치에 있어야합니다.

일반적으로 Ember는 (다른 상태로 전환 할 때)보기를 다시 렌더링하고 이전 위치가 손실됩니다.

+0

정말 내 질문에 답변이 없기 때문에 제 대답을 삭제했습니다. – nicholaides

+0

클라이언트 옆에 공간이있는 사이드 패널을 패널 옆에 추가하면 콘센트가 있고 클라이언트를 클릭하면 콘센트에 세부 정보가 표시됩니다. –

답변

1

나쁜 소식을 전하는 사람이되기 싫지만 응용 프로그램의 다른 부분으로 이동하는 경우에는 다시 렌더링을 중단 할 수 없습니다. 더 이상 표시되지 않으면 항목이 DOM에서 튀어 나와 더 이상 존재하지 않게됩니다.

페이지 또는 개체의 스크롤 위치를 얻기 위해 jQuery를 사용하여이 응용 프로그램에서이 문제를 해결했습니다. jQuery Scroll Top. 내가 한 것은 스크롤 위치를 저장 한 모델의 위치를 ​​가졌다는 것입니다. 다음보기에 나는 여기서 중요한 테이크 아웃의 의견 재 렌더링해야한다는 것입니다

didInsertElement: function() { 

    //Restore previous scroll position 
    $('#item').scrollTop(this.get('model.scrollPosition')); /* or on older ember builds `this.getPath('model.scrollPosition')` */ 

    //Update the model with new scroll position when user scrolls 
    var _self = this; 
    $('#item').scroll(function(e){ 
     _self.get('model').set('scrollPosition', $(this).scrollTop()); 
    }); 

} 

같은 일을했다. 저것은 멈추지 않습니다. 개발자로서의 작업은 뷰에 필요한 상태 (스크롤 위치, 포커스가있는 요소 등)를 복원 할 수있는 방식으로 저장하는 것입니다. 엠버는 당신이 할 수있는 도구를 제공합니다.