主干:确定视图是否已加载
Backbone : Determing if a View has Already Been Loaded
我想通过更改 url 来更改主干应用程序的当前页面。 我已经设置了路线,当我更改 url 时,我的页面正在发生变化,预计每次我访问给定路线时,都会向 dom 呈现一个新视图。
我的路由器 :
myApp.Application = Backbone.Router.extend({
routes: {
'' : 'home'
//etc
},
initialize : function() {
myApp.dom.$container = $('#container');
myApp.dom.$container.empty();
},
home : function() {
myApp.loginView = new myApp.views.home();
myApp.dom.$container.append(myApp.home.render().el);
}
})
我是否正确认为我需要在渲染之前检查(例如)myApp.loginView 是否存在?
所以像这样:
home : function() {
if (!myApp.loginView) {}
myApp.loginView = new myApp.views.home();
myApp.dom.$container.append(myApp.home.render().el);
} else {
//just show it
}
}
..并为我的每条路线执行此操作?
谢谢!
这
似乎很湿,我宁愿做一些类似叫isAlreadyRendered()
的myApp.views似乎是类时,将所有内容都粘贴到myApp.SpecificName似乎是错误的。
使用App.views.class = new App.Views.Class
初始化怎么样
然后创建一个用于启动视图的工厂,例如
function factory(className){
if( App.views[className.toCamelCase()] ) return;
App.views[className.toCamelCase()] = new App.Views[className].apply(App.Views, [].slice.call(arguments, 1))
}
像这样的东西,我习惯于使用coffeescript,这也会使事情变得更容易。
应用和切片以及所有这些,以便您应该能够在第一个之后将任意数量的参数传递到因子中,尽管这都是来自我的头脑,因此这可能是一个学习实验,可以使其工作并理解使用应用程序和调用的乐趣(如果您使用CoffeeScript,您会更快乐)
享受!
相关文章:
- 如何检测是否加载了iframe
- 如何知道是否加载了JavaScript(脚本)
- 如何在jsoup的帮助下跟踪我的网站是否加载到android设备上
- 如何检查iframe是否加载在JavaScript中
- jQuery或Javascript检查是否加载了图像
- 如何检查<对象>是否加载失败
- 如何确定聚合物元素是否加载
- 如何检测动态加载时加载的jquery是否加载
- 检查 WebGL 纹理是否加载到片段着色器中
- 如何检查是否加载了所有图像?(请不要使用jQuery)
- 如何检查外部javascript是否加载失败
- 有没有办法检查html是否加载在Iframe上
- jQuery:如何检测是否加载了LI元素
- 如何检查我所有的 html 内容是否加载在 angularjs 中
- 如何查看页面上是否加载了jQuery文件
- 检查iframe是否加载在$(document).ready中
- 如何检查元素是否加载
- 我如何检查iframe内容是否加载和可见
- 如何检测网站是否加载在移动设备上的iframe中
- 是否有一种方法来确定是否加载了所有本地JavaScript资源