我有的:
我有一个编辑功能,可以在其中重新呈现我的视图;
MyView = Backbone.View.extend({
edit: function (view) {
......
view.render();
}
});
有什么问题:
有一个用例可以在编辑功能视图期间关闭,所以我不能在编辑view.render()
功能结束时调用。
问题:
如何检查视图是否已经在编辑功能中关闭?就像是:
MyView = Backbone.View.extend({
edit: function (view) {
......
if (!view.isClosed())
view.render();
}
});
对于@net.uk.sweet:
我使用 Bootstrap X-Editable。在它的帮助下,我可以修改测试字段。要修改文本字段,我只需要单击它,更改值,然后单击它的外部(文本字段外部)。在这种情况下,将调用方法成功。
textEditor: function(view) {
$(this).editable({
type: 'textarea',
mode: 'inline',
onblur: 'submit',
showbuttons: false,
inputclass: 'edit-comments-text-input',
validate: function(value) {
if (!value.trim()) {
return 'Can not be empty!';
}
},
success: function(response, newValue){
//modify the comment
comment.text = newValue.trim();
//rerender
if (!view.isClosed()) //This line is what I need, but view hasn't isClosed method ((
view.render();
}
});
}
另外值得一提的是,用户可以通过单击关闭按钮或单击视图外来关闭视图。
问题用例:
- 用户单击 x-editable 字段
- 更改文本
- 点击关闭按钮
在这种情况下会发生什么:
两个动作:
- 视图已关闭
- 成功方法,它调用
view.render()
,但绝不能!
概括:
如果视图已关闭,我需要检查我的成功方法内部。
粗解:
似乎我找到了一些解决方案,当然不是最好的解决方案。
if ($(view.el).hasClass('in'))
view.render();