ドロップイベントでビューを更新するのに少し問題があります。問題は関数handleDrop()にあると確信しています。ビューの再レンダリングは、ブラウザの通常のmodel.set({})テストで機能しました。だから、私はそれが問題がある場所ではないことを知っています...
バックボーンルーター
App.Routers.Dashboard = Backbone.Router.extend({
routes: {
"": "index"
},
initialize: function(options) {
},
index: function() {
var preflist = new App.Models.PrefList({});
preflist.fetch({
success: function() {
var paneloneview = new App.Views.PanelOne({ model: preflist });
$('#panelone').html(paneloneview.render().$el);
}
});
var sourceID;
var payloads = {
poolpricedraggable: "poolprice",
nonedraggable: "smp"
};
var element = function(id) { return document.getElementById(id); }
function handleDragOver(event) {
if(event.preventDefault) event.preventDefault();
return false;
}
function handleDrop(event) {
dropzone = this.id;
if(event.preventDefault) event.preventDefault();
console.log("recevied the data: " + payloads[sourceID] + " in #" + dropzone);
var attribute = preflist.get('panel_one');
preflist.set({panel_one: attribute});
preflist.save();
}
element('panelone').addEventListener('dragover', handleDragOver, false);
element('panelone').addEventListener('drop', handleDrop, false);
PanelOneビュー
App.Views.PanelOne = Backbone.View.extend({
initialize: function() {
_.bindAll(this, 'render');
this.model.bind('change', this.render);
},
render: function(){
var panelonesetting = this.model.get('panel_one');
this.$el.html(JST['dashboard/' + panelonesetting]({}));
return this;
}
});
よろしくお願いいたします。AC