2012-04-02 3 views
0

내 collection.fetch가 작동하지 않고 렌더링 할 모델을 얻지 못합니다. 내가 그것을 불을 지르고를 사용하여 디버깅 할 때백본에서 fetch collection.fetch에 대한 모델이 없습니다.

initialize: function(){ 
    ItemCollection.bind("reset", this.render); 
}, 
render: function(){ 
    var data = { 
    items: itemcollection.models 
    } 
    var compiledTemplate = _.template(ItemListTemplate , data); 
    $("#itemContainer").html(compiledTemplate); 

}, 

재미있는 것은이 제대로 렌더링 : 나는

define([ 
'underscore', 
'backbone', 
'model/item_model' 
    ],function(_, Backbone, Item){ 
var ItemCollection = Backbone.Collection.extend({ 
    model: Item, 
    url: 'http://posbeta.interprisesolutions.com/POSMobileConnector/Product/loaditembycategory/Event Materials', 
    parse: function(response) { 
    return response.Items; 
    } 
}); 
return ItemCollection; 
}); 

내보기 내 router.js에

itemcollection = new ItemCollection(); 
     itemcollection.fetch(); 
     ItemListView.render(); 
     CartListView.render(); 
    } 

내 itemcollection.js

을이이 중단 점을 제거하면 아무 것도 표시되지 않습니다. 어떤 아이디어?

답변

3

베어와 함께 인코딩 시도를 - 그것은 반환 데이터가로드되기 전에 즉시. 당신이 컬렉션의 reset 이벤트를들을 수있다, 또는

itemcollection = new ItemCollection(); 
itemcollection.fetch({ 
    success: function() { 
    ItemListView.render(); 
    CartListView.render(); 
    } 
}); 

:

당신은 뭔가를 시도 할 수 있습니다.

+0

나는 리셋을했지만 작동하지 않습니다. ItemCollection.bind ("reset", this.render); – jongbanaag

+0

당신은'this'를 바인딩해야 할 수도 있습니다 :'ItemCollection.on ('reset', this.render, this); ' – stusmith

+0

나는 명확한 설명을 원합니다. 항목 목록보기에 이미 ItemCollection을 인스턴스화 한 경우 다른보기에서 사용하려면 다시 인스턴스화해야합니까? – jongbanaag

0

URL입니다에 공백이 있습니다

.../이벤트 재료 ',

을 제거하거나 fetch 비동기 있음을 알아 %20

+0

흠. 고마워.하지만 전에는 잘 했어. 전에 인스턴스화 된 컬렉션을 반환했습니다. "새로운 ItemCollection을 반환하십시오. – jongbanaag

관련 문제