如何检查主干视图是否已渲染
How to check if a backbone view is rendered?
我正试图用以下代码将视图附加到Backbone中的项目:
var viewContainer = this.$el.find('.view-container'),
pageWrap = this.$el.nextAll();
修复if(viewContainer.empty()){
this.myView= new ProductsView();
viewContainer.append(application.myView.render().$el),
console.log(myView);
}
我使用toggle
功能将此视图附加到viewContainer
,但是,每次单击按钮时,myView
都会一次又一次地附加到viewContainer
,而不是仅附加一次。在附加视图之前,如何检查视图是否已在其中渲染?我能用!this.rendered()
吗?
我找到了这个线程,但在这种情况下它对我没有帮助。
UPDATE-FROM console.log(viewContainer)
[div.view-container.product-container.active, div#subjects_menu.view-container.product-container.hidden.active, prevObject: p.fn.p.init[1], context: undefined, selector: ".view-container"]
从外观上看,如果ProductsView
已经存在,您需要确保它没有被创建。
最简单的方法是:
if(!this.myView) {
this.myView= new ProductsView();
viewContainer.append(application.myView.render().$el),
}
处理应用程序状态比查询DOM更好。删除产品视图后,只需执行this.myView = null
即可。
您唯一想查询DOM以了解视图是否被渲染的时候,可能是当您必须集成一个孤立的外部应用程序时,您无法控制该应用程序在渲染时不会触发任何事件/提供回调等。
相关文章:
- 如何测试主干视图是否正确侦听特定事件
- 根据手机上是否存在文件,在jQuery mobile中动态填充列表视图
- 如何判断页面是否处于打印视图中
- 检查网格视图中的复选框是否被选中
- 在主干视图中的每个方法之后是否需要“返回此内容”
- 主干:确定视图是否已加载
- Web视图中的远程网站是否可以与Phonegap结合使用
- 是否有任何事件“;在$scope摘要完成时”;或“;在视图刷新时”;在Angular.js中
- Couchdb:是否可以从另一个视图中查询一个视图
- M项目2:是否可以从DOM对象中获取M视图
- 是否可以在没有视图状态和回发的情况下使用asp.net web表单
- MVC 4部分视图是否使用其父视图'或者必须将.css和.js添加到局部视图中
- 测试提线木偶布局视图中是否缺少区域元素
- 如何在加载视图之前检查JSF资源是否存在
- 如何检查主干视图是否已渲染
- 如何在mvc3视图javascript中查找当前请求是否为ajax
- ng视图路由模板是否反映了ajax请求所做的更改
- 在开放层 3 中完全渲染地图视图后,事件是否会触发
- 如果外部应用程序更改了持久模型(服务器数据库),AngularJS 是否可以自动更新视图
- 控制器是否应直接访问视图的模型