저는 계단식보기가되는 백본 응용 프로그램을 만들고 있습니다. initialize
메서드 내에서 자식 뷰를 만들고 자식 뷰 렌더링을 자체의 render
내부에서 호출하는 하나의 루트 뷰가 있습니다. 자신의 render
방법 안에 그들 자신을 렌더링하고 자녀에 render
전화 -백본 렌더링 계단식보기
initialize: function(options) {
console.log('body');
this.template = tpl({});
this.headerView = new HeaderView(options);
this.chartView = new ChartView(options);
this.footerView = new FooterView(options);
},
render: function() {
console.log("body");
this.$el.html(this.template);
this.headerView.setElement(this.$el.find('.header')).render();
this.chartView.setElement(this.$el.find('.chart')).render();
this.footerView.setElement(this.$el.find('.footer')).render();
return this;
}
모든 아이 뷰는 같은 길을 갈 : 그것은 다음과 같이 보일 수 있습니다.
내 질문은 왜 마지막보기가 렌더링을 마친 후에 전체 페이지가 표시됩니까? 내 페이지는 꽤 복잡하고로드하는 데 4 초가 걸리고 그동안 빈 페이지가 있습니다. 나는 분명히 볼 수있는 많은 콘솔 출력을 가지고 있으며, 일부 뷰는 이미 렌더링되어 있습니다.
왜 그렇게 많은 양의 HTML이 표시되지 않는지 이해할 수 없습니다. 그리고 저는 그렇게되기를 원하지 않습니다.
"루트 엘이 dom에 연결된 후 일어나는 서브 뷰 렌더링"이 무슨 의미인지 이해할 수 있도록 예제 코드 조각을 제공해 주시겠습니까? 미리 감사드립니다! – ducin
그건 그렇고, 정확히 DOM에 첨부 된 '엘'뷰일까요? 그것이 '돌아 오는 동안'인가요? 어떤 코드 라인이 그 일을 담당합니까? – ducin
예, 답장에 스 니펫을 추가하겠습니다. 이 질문에 답하기 위해 네,'render'가 반환 될 때 루트 엘이 붙습니다. 'this'는 View 객체가 될 것이므로 루트 뷰 (Router? Main script?)를 인스턴스화 한 코드는'$ ('body')와 같은 일을 할 것입니다 .. append (new RootView(). render() .e el)' – namero999