問題があります。CollectionView
は私のItemViews
を表示しません。私はレイアウトからコレクションビューにコレクションを渡します。私はCollectionView
でコレクションをフェッチしています:レイアウトのMarionette Collectionビュー、コレクションを取得してもイベントが発生しない
:
CollectionViewで// Create a a collection for the view
this.articles = new Articles(null, {
organizationId : this.model.organizationId,
projectId : this.model.id
});
var articlesView = new ArticleCollectionView({ collection : this.articles});
this.articlesRegion.show(articlesView);
:ItemViewで
define([
'marionette',
'templates',
'i18n!nls/projectDashboard',
'views/projectDashboard/ArticleItem'
], function (Marionette, templates, msg, ArticleItemView) {
return Marionette.CollectionView.extend({
initialize : function() {
this.listenTo(this.collection, "reset", this.render);
this.collection.fetch();
},
itemView : ArticleItemView
});
});
:
define([
'marionette',
'templates',
'models/Article'
],
function (Marionette, templates, Article) {
return Marionette.ItemView.extend({
initialize : function() {
console.log('itemviewrender');
},
template : templates.projectDashboard.articleItem
});
});
一般的にセットアップは働いている。私はこの作業を行うための1つの方法を見つけました:レイアウトでコレクションを取得し、CollectionView
を成功コールバックの領域に表示します。
ただし、コレクションのコレクションビューでリスナーを追加すると失敗します。いいえイベントは、コレクションをフェッチする場合、私は単にそれのアイテムビューでコレクションビューを再描画したい
this.collection.on('reset', this.render, this);
または
collectionEvents : {
'reset' : 'render'
}
のような必要不可欠と宣言型のリスナーのために解雇されていません。私は何かを逃したと確信しています。どんな助けもありがとう!
更新:私は面白いものを見つけました: レイアウトでコレクションを取得し、成功したコールバックでcollectionViewを作成したとします。興味深いのは、取得したコレクションを渡すとリスナーも機能します。私はthis.collection.fetch()
をinitialize
に再度呼び出すことによってそれらを引き起こします。その後、再レンダリングが機能します。それは、レイアウトからのコレクションパスの周りにあるものでなければなりません。あなたがここれるCollectionEventsに
を使用したい
ここでイベントをバインドしていますか?それは 'CollectionView'初期化メソッドにあるべきではありませんか?また、 'on'の代わりに' listenTo'を使用してみてください。 – neebz
彼らはcollectionViewにあります。私は、ListViewを使ってdoenstの作業を行うかどうかを理解するためにCollectionViewに1つ追加してください。 – pfried
これは面白いです。ドキュメントによると、Marionnetteが自動的にあなたのためにイベントを手動でバインドする必要はないようです。https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.collectionview.md#コレクションビューレンダー。その場合、それは奇妙な問題であると思われます。 – neebz