私はこれに夢中になります。コレクションがバックボーン コレクションとして正しく設定されていて、すべて正常に動作しているように見えますが、何らかの理由で CollectionView が正しくレンダリングされません。実際、テンプレートからオブジェクトをログに記録すると、正しい属性も表示されます!
では、なぜ私の地域ではコレクションが表示されないのでしょうか? これが私のコードです:
merchants = @model.get("merchants")
merchantsCollection = new MerchantsCollection()
merchantsCollection.reset(merchants)
storesview = new StoresView
collection: merchantsCollection
itemViewOptions: ->
templateName: "image"
storesview.render()
console.dir merchantsCollection
@storeResults.show storesview
@trigger "panel:completed"
MerchantsCollection をログに記録すると、次のようになります。
MerchantsCollection
_byId: Object
_events: Object
_listenerId: "l871"
length: 8
models: Array[8]
ここに私のCollectionViewコードがあります:
define [
"backbone.marionette",
"helpers",
"global/views/store",
"global/views/empty"
], (Marionette, helpers, StoreView, EmptyView) ->
class StoresView extends Marionette.CollectionView
className: "js-stores js-stores-view unstyled"
tagName: "ul"
itemView: StoreView
emptyView: EmptyView
initialize: (options) ->
if options.template then @template = options.template
そして私のItemViewコード:
define [
"backbone.marionette",
"global/models/store",
'text!global/templates/store.html',
'text!global/templates/store-image.html'
], (Marionette, storeModel, storeTemplate, storeImgTemplate) ->
class StoreView extends Marionette.ItemView
tagName : 'li'
className : "js-item store"
template : _.template storeTemplate
events:
"click a" : "gotoStore"
collectionEvents:
"all" : "render"
initialize: (options) ->
if options.templateName and options.templateName is "image"
@template = _.template storeImgTemplate
onRender: ->
gotoCategory: (e) ->
e.preventDefault()