Javascript 主干:检查视图是否已关闭
我所拥有的: 我有一个编辑功能,在其中我可以重新提交我的视图Javascript 主干:检查视图是否已关闭,javascript,backbone.js,backbone-views,backbone-events,x-editable,Javascript,Backbone.js,Backbone Views,Backbone Events,X Editable,我所拥有的: 我有一个编辑功能,在其中我可以重新提交我的视图 MyView = Backbone.View.extend({ edit: function (view) { ...... view.render(); } }); 真是个问题: 有一个用例可以在编辑函数期间关闭视图,因此我不能在编辑函数结束时调用view.render() 问题: 如何检查编辑功能中的视图是否已关闭?比如: MyView = Backbone.View.extend({
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。借助它,我可以修改测试字段。要修改文本字段,我只需要单击它,更改值,然后单击它的外部(文本字段的外部)。在这种情况下,将调用方法success
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();
}
});
}
同样值得一提的是,用户可以通过点击关闭按钮或点击视图外部来关闭视图
问题用例:
view.render()
,但不能李>
摘要:
如果视图已关闭,我需要检查成功方法的内部
粗溶液:
似乎我找到了一些孤独,当然不是最好的
if ($(view.el).hasClass('in'))
view.render();
我认为这里没有足够的信息来帮助你。发布整个视图类怎么样?或者更好的方法是,在中放一个演示。请参阅我的文章的“for@net.uk.sweet”部分question@NickoleAbs将标志
.isClosed
保留在视图中(并在需要时进行修改)是否有问题?@net.uk.sweet标志是一种不好的做法,并且容易出错。我的视图在很多地方都是关闭的,每次我都需要重置标志。有些人可能会忘记……如果视图实例仍然可以访问,如果它没有被销毁,为什么不在视图对象本身中保留一个实例变量呢。可以使用view.setClosed(true)
和view.setClosed(false)
访问它。
MyView = Backbone.View.extend({
initialize : function() {
this.setClosed(false);
},
setClosed : function(booleanValue) {
this.closed = booleanValue;
},
getClosed : function() {
return this.closed;
},
edit: function () {
var view = this;
//......
if (!view.getClosed()) {
view.render();
}
}
});