2014-10-31 1 views
0

Backbone.js에서 뷰의 인스턴스를 만들 때 this.el이되는 루트 dom 요소를 뷰 내부에 할당합니다. 우리의 Backbone.js 앱에는 뷰 인스턴스에 대한 참조가있을 수 있으므로보기 작업이 쉽습니다. 그러나 페이지에 뷰 인스턴스에 대한 참조가 없지만 어떤 dom 요소가 뷰 (this.el)를 나타내는지도 알고있는 다른 스크립트가 있다고 가정 해 봅시다. Backbone.js에 dom 요소에서 뷰 인스턴스를 검색하는 내장 된 방법이 있습니까? 예를 들어 뷰 인스턴스에 대한 참조가 인스턴스에 도달 할 수 있습니까?Backbone.js를 저장/검색하기위한 패턴 dom 요소와 연결된 인스턴스보기

var viewInstance = $("#rootElId").data("bb-myview"); 

내가 backbone.js이 같은 내장 기능을 인식하지 못하는,하지만 난 그냥 경우에 하나가 존재 물어 거라고 생각 : 나는 같은 것을 할 싶습니다.

둘째, 이것이 Backbone.js에 내장되어 있지 않으면 다음과 같은 고유 한 기능을 구현하는 좋은 방법은 무엇입니까? 밖에 복사 할 수있는 좋은 패턴이 있습니까?

감사합니다.

+2

확인이 아웃 : http://stackoverflow.com/questions/5013848/backbone-js-given-an-element-how-do-i-get- the-view – MorKadosh

답변

0

우리는 이러한 유형의 기능

당신이 레이아웃

var AppLayoutView = Backbone.Marionette.LayoutView.extend({ 
    template: "#layout-view-template", 

    regions: { 
    menu: "#menu", 
    content: "#content" 
    } 
}); 

var layoutView = new AppLayoutView(); 
layoutView.render(); 

디스플레이보기를 얻기 지역

layoutView.menu.show(new MenuView()); 

에서 뷰를 생성하는 방법을 수행하는 꼭두각시 레이아웃과 영역을 사용 해당 지역에서

var viewInstance = layoutView.menu.currentView // here you can get the actual view instance 

https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.layoutview.md

https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.region.md

감사

+0

그것은 정확히 어떻게 문제를 해결합니까? 여전히 뷰보기 DOM 요소에 액세스 할 수 없습니까? – Dethariel

+0

@Dethariel region을 사용하면 viewInstance의 .el 요소를 묻는 것만으로 현재 뷰 인스턴스의 DOM 요소에 액세스 할 수 있습니다.이 영역과 같은 많은 이점을 제공하거나 좀비 뷰에 대해 걱정할 필요가 없습니다. –

+0

이 솔루션에서는보기에 대한 참조 (예 : layoutView)를 저장해야합니다. 문제는 "보기를 저장하지 않고보기에 액세스하는 방법"입니다. – Dethariel

관련 문제