我正在寻找Backbone js中的模式来在readonly和edit视图之间切换.如果视图的触发器在视图外部,那么没问题我可以创建适当的视图(只读或编辑)并渲染它,但在我的情况下,编辑视图的触发器将在只读视图内.
例如,假设我正在显示处方,默认情况下它处于只读模式,并且在悬停时会显示编辑图标.点击此编辑图标,现在应该用编辑视图替换只读视图.什么是实现这一目标的最佳方法.以下是我正在考虑的几个选项
我倾向于#2但不确定如何以优雅的方式实现它.对此有任何想法都会有所帮助.
谢谢Zafer
骨干js中的View.remove()函数从DOM中删除视图本身的容器元素,防止重新创建已删除的视图.知道如何处理这种情况
这是我的代码,
var AttributeView = Backbone.View.extend({
el: $("#attrs"),
template:_.template($('#attrs-template').html()),
initialize:function() {
},
render:function (eventName) {
$(this.el).html(this.template(this.model.toJSON()));
return this;
},
dispose:function(eventName){
this.unbind();
this.remove();
},
});
var attrView = new AttributeView();
....
attrView.dispose();
//Later on some event I do the below
attrView = new AttributeView()
attrView.render();
Run Code Online (Sandbox Code Playgroud)
上面的最后两行不会重新创建视图,因为id ="attrs"的div不再存在.
我注意到所有屏幕在我浏览应用程序时都被重新渲染,即使它们不活动(可见)。唯一的例外是 TabNavigator 中 LazyLoad 设置为 true 的屏幕。如果是,我如何抑制渲染 i 并仅在可见时触发渲染