Backbone.Model で sync イベントが発火したとき、期待する値が set されていない
Backbone.js と Backbone.Marionette の組み合わせで、以下のようなコードを書いています。
var Model = Backbone.Model.extend({
url: '任意のURL',
dataFetch: function() {
this.fetch()
.fail(alert('error!!'));
}
});
var ViewItem = Marionette.ViewItem.extend({
model: new Model();
modelEvents: {
'sync': 'displayModelAttr'
},
initialize: function() {
this.model.dataFetch();
},
displayModelAttr: function() {
console.log(this.model.attributes);
}
});
var viewItem = new ViewItem();
model
で発火した sync
イベントで拾い、 model
の attributes
をコンソールに表示しています。
しかしながら指定した url から fetch
した値ではなく、空の Object が表示されてしまいます。
sync
イベントが発火した時点で、 model
は fetch
した結果を自身に set
していると考えていたのですが、まず、その認識から誤っているのでしょうか。
通信そのものは正常に成功しており、期待したjsonが返却されていることをブラウザの開発ツールで確認しております。