2013-09-08 1 views
-1

Firebase (Backfire)가 백본 응용 프로그램에 데이터를 제공하는 동안로드 메시지/아이콘을 삽입하려고 시도하고 있지만 이제는 잘 작동합니다. 여기에 작은 예제가있는 바이올린이 있습니다 : http://jsfiddle.net/aJfUx/5/Backfire 및 백본 메시지로드 중

내가 추가하고 내가 데이터를 렌더링 해요 HTML 요소를 제거하려했지만 작동하지 않습니다

render: function() { 
    this.$el.html("<i class='icon-spin icon-refresh loading-icon' />"); 
    this.collection.each(function(item){ 
    this.renderBook(item); 
    }, this); 
    this.$el.find(".loading-icon").remove(); 
} 

내 목표는 모든 렌더링 된 후에 만 ​​모든 데이터를 표시하는 것입니다.

+0

예를 들어 오류가 발생했습니다. –

+0

메시지를 보내 주셔서 감사합니다. 나는 실제 Firebase 컬렉션, 피들을 보여주지 않을 것입니다. 단지 모든 코드 로직을 보여줄뿐입니다. – swayziak

+0

같은 질문을 여러 번 묻는 이유는 무엇입니까? 나는 이것이 적어도 두 번 더 요구되는 것을 본다 (한 지부는 닫혔다). 다른 하나가 있습니다 : http://stackoverflow.com/questions/18624907/loading-bar-in-backbone 왜 거기에서 가서 대답을 확장하지 않습니까? – orange

답변

0

나는 renderBook에 걸리는 시간이 오래 걸리고 사용자가 어떻게 만들어 졌는지 보지 못하게하려고합니다. 요소를 만들고 DOM의 일부가 아닌 채 채 웁니다.

render: function() { 
    this.$el.html("<i class='icon-spin icon-refresh loading-icon' />"); 
    var $panel = $('<div></div>'); 
    this.collection.each(function(item) { 
     this.renderBook(item, $panel); 
    }, this); 
    this.$el.html($panel); 
} 
+0

그래, 내 문제 야. 렌더링 부분이 이렇게되어야한다고 제안합니까? render : function() { this. $ el.html (" '); var $ panel = $ ('

'); this.collection.each (function (item) { this.renderBook (item, $ panel); }, this); this. $ el.html ($ panel); \t} – swayziak

+0

'renderBook()'에서는'this. $ el' ('$ panel.append (bookview.render(). el);'대신'$ panel' 변수를 사용해야합니다) . 그것은 내가 당신의 코드를 너무 많이 바꾸지 않고서도 쉽게 올 수있는 것입니다. – orange

+0

답변을 주셔서 감사합니다. 그래서 renderBook()은 이렇게 보일 것입니다? renderBook : 기능 (항목) { \t \t var에 bookview = 새로운 app.BookView ({ \t \t \t 모델 : 항목 \t \t}); \t \t $ panel.append (bookview.render(). el); \t}. Uncaught ReferenceError : $ panel이 정의되어 있지 않습니다. – swayziak