と の 2 つのモジュールがitemView.js
ありListView.js
ます。
データをフェッチすると、すべてが機能します。
問題はitem view
、対応機種を変更した場合の(1)についてです。
a) (2)は、モデルが(3) と等しい値をListView.js
持つすべてのオブジェクトを表示しますclosed
false
b) closeTask
(1) のアクションは、モデルの値を
からclosed: false
に変更します。closed: true
c) b) が発生しても何も変化しませんが
、ページをリロードすると正しい結果が得られます (closed
値が等しいモデルtrue
は表示されません)。
この問題を解決するにはどうすればよいですか?
(1)
// itemView.js
var itemView = Marionette.ItemView.extend({
initialize: function () {
this.model.on('change', this.render, this);
},
events: {
'click #close': 'closeTask'
},
template: itemTemplate,
tagName: 'li',
closeTask: function () {
if (!this.model.get('closed')) {
this.model.save({
closed: true
});
}
}
});
(2)
// ListView.js
var ListView = Marionette.CompositeView.extend({
template: listTemplate,
itemView: itemView
});
(3)
// Collection
myCollection.attributes = [
{
id: 1,
name: 'bar'
closed: false
},
{
id: 2,
name: 'bar2'
closed: false
},
….
];
PS:
コレクションをフェッチすると、サーバーは、closed 属性が false に等しいモデルのみを提供します。
app.addInitializer(function () {
myCollection = new MyCollection();
myCollection.fetch();
});