2012-01-10 2 views
7

이전에 SproutCore 1을 사용한 후에 ember.js를 조사했습니다. 사용자가 응용 프로그램을 탐색 할 때 DOM에서보기를 추가하고 제거하는 방법에 대한 몇 가지 예를 찾고 있습니다.Ember.js DOM에서보기를 추가하고 제거 하시겠습니까?

예를 들어, 일련의 사례가 포함되어 있고 각 사례마다 워크 플로가 있습니다. 관리 페이지 등도 있습니다.

사용자가 응용 프로그램을 시작하면 대시 보드와 유사한 사용자 인터페이스가 표시됩니다. 여기에서 사용자는 사례를 검색하거나 클릭하여 사례를 제기 할 수 있습니다. 이 시점에서 나는 다음을 수행 할 :

  • 내가 대시 보드에 대한 GUI를 제거 할, 그리고 난 경우의 GUI 표시 할 - 탐색 자체적 자체에 복잡한 GUI입니다 규칙 등.
  • 또한 사용자가 탐색하고 대소 문자를 조작 할 때 GUI의 일부를 추가하고 제거하려고합니다.
  • 사용자가 "대시 보드"링크를 클릭하면 현재 GUI가 제거되고 대시 보드가 다시 추가되기를 원합니다.

이것은 다소 큰 응용 프로그램이므로 isVisible 매개 변수를 토글하는 것이 충분한 지 또는 사용자의 브라우저에 과부하가 걸리지 않도록 다른 조치를 취해야하는지 잘 모르겠습니다.

가이드 또는이 방법을 보여주는 예제가 있습니까?

+0

[ember-states] (https://github.com/emberjs/ember.js/tree/master/packages/ember-states)의 코드를 살펴 봐야합니다. –

+1

ud3323 : 고마워, 그래도 두 가지 질문이 남는다. 1. childViews를 추가하고 제거하려면 어떻게해야합니까? 2. 코드에서 MyApp.statemanager.create()를 어디서 말합니까? Ember.Application.create ({ready : function ({// here})});)에 코드를 삽입하면 내 index.html에서 생성 된 뷰 바로 앞에 스테이트 차트가로드되는 것 같습니다. –

+0

오래된 SC 1.x 상태 차트와 새로운 엠버 상태 사이의 가장 큰 차이점 중 하나는 ViewStates입니다. 기본적으로 그것은 귀하의 statechart 내에서보기의 추가/제거를 처리합니다. 다른 질문에 관해서는, Ember.StateManager.create를 호출 할 때 statechart를 초기화하고 초기 상태를 입력해야합니다. –

답변

9

경고 : 오래된 답

뷰는 몇 가지 중요한 방법을 얻는 것을 의미 Ember.View에서 상속됩니다. append()body에, appendTo(arg)에는 인수가 있고 remove()이 붙습니다.

인자는 DOM에 요소를 삽입 할 위치의 jQuery 스타일 선택자입니다.

// my view 
App.PartsView = Ember.View.extend({ 
    ... 
}); 


// create/insert my view 
App.partsView = App.PartsView.create(); 
App.partsView.appendTo('#partcontainer'); 

내 코드에는 <div id="partcontainer"></div>이 있습니다.

// remove from DOM 
App.partsView.remove(); 

문서는 Building a View Hierarchy에 좋은 부분과 프로그래밍 방식 여부 모든 것을 할 것인지 여부에 따라 Ember.ContainerView에 나중에 섹션이 있습니다.

+0

jQuery 문서는 [사용 가능한 jQuery 선택기 개요] (http://api.jquery.com/category/selectors/)를 제공합니다. – Abdull

+0

질문 :이 작업을 수행해야합니까? Ember와 일하는 정상적인 방법에서 약간 벗어난 것 같습니다. –

+1

좋은 질문입니다. 필자는 거의 2 년 전 엠버지가 훨씬 더 "미완성"이었을 때 이것을 썼다. 그리고 나는 지금 일어나고있는 일에 대해 최신 상태를 유지하지 못했다. 내 대답이 구식 일 수 있습니다. –

관련 문제