2
//當我單擊kickassessor按鈕時,它將更新數據庫,但視圖不會更新。這是我的代碼。 返回Marionette.ItemView.extend({Backbone.marionette在模型更改上重新渲染視圖
initialize : function (options) {
var self = this;
_.bindAll(this);
_.each(options, function (value, key) {
self[ key ] = value;
});
//this.model.on('change', this.render, this);
return this;
},
// Ui events hash
events : {
'mouseover a.btn' : 'showTooltip',
'click #kickBtn' : 'kickAssessor',
'click #deleteBtn' : 'deleteUser'
},
// on render callback
onRender : function() {
this.ui.kickBtn.tooltip({
title : 'Kick as assessor'
});
this.ui.deleteBtn.tooltip({
title : 'Delete user'
});
},
kickAssessor : function () {
this.model.save({role:'2'});
//on success it should update the itemview
},
我試過這個解決方案,但仍然沒有工作。它不更新視圖// modelEvents:{ 'change':'modelChanged' }, modelChanged:function(){ //console.log('model change'); this.render(); \t} – mouthzipper
只是注意到你更新模型的方式(通過調用'save')不會觸發「更改」事件。我已經更新了我的答案以使用「同步」事件,當服務器響應'save'調用時將觸發該事件。 –
請記住,onShow事件只在初始渲染時調用,而不是重新渲染。 – adibble