2016-09-12 3 views
1

내 예 :오류 : CollectionView가 필요 ItemView

var stooges = [{ name: 'moe', age: 44, userid: 1}, 
       { name: 'larry', age: 44, userid: 2}, 
       { name: 'curly', age: 44, userid: 3}]; 





var StoogeModel = Backbone.Model.extend({}); 


var StoogeCollection = Backbone.Collection.extend({ 
    model: StoogeModel 
}); 



var StoogeItemView = Backbone.Marionette.ItemView.extend({ 
    tagName: "tr", 
    template: '#stooge-template' 
}); 

var StoogesCollectionView = Backbone.Marionette.CollectionView.extend({ 
    tagName: "table", 
    childView: StoogeItemView 
}); 






var myStooges = new StoogeCollection(stooges); 

var myStoogesView = new StoogesCollectionView({ collection: myStooges }); 


myStoogesView.render(); 

document.body.appendChild(myStoogesView.el); 

내가 주제 backbone.js collection view example using marionette template 읽을이 예제하지만 오류가 있습니다

marionette_backbone.js : 1299 catch되지 않은 NoItemViewError 일 : itemView

를 지정해야합니다

도와주세요.

+1

어떤 버전의 마리오 네트를 사용하고 있습니까? – Cyclone

+0

확실치 않지만 일부 버전이 일치하지 않아서 [이 바이올린] (https://jsfiddle.net/cyclone/f70z64ef/1/)에 코드를 붙여 넣기하고 라이브러리를 추가 한 것으로 보입니다. 일. – Cyclone

답변

1

프로젝트에서 Marionette 1.x를 종속성으로 사용하고 있지만 2.x 인터페이스를 사용하려고합니다. 2.x changed the naming to "childView"

이 문제 해결해야 itemView 이름을 사용하도록 StoogesCollectionView 정의를 변경하면서 In 1.x CollectionViews used an "itemView"는 : 또는

var StoogesCollectionView = Backbone.Marionette.CollectionView.extend({ 
    tagName: "table", 
    itemView: StoogeItemView 
}); 

을, 당신은 최신 버전으로 마리오네트를 업그레이드 할 수 있습니다.