2012-06-19 41 views
3

我正在实现一个系统,在该系统中,我管理视图切换,以便在渲染另一个视图之前清除该视图所携带的任何事件。但是,我需要使用视图的实例在数组中查看视图。我如何获得视图实例的视图类?从一个实例获取骨干视图的父类

如:

var myView = new MyView; 
return myView.parent(); // this should return MyView 

谢谢!

回答

3

听起来你正在寻找的constructor属性:

返回创建实例原型的对象函数的引用。

所以,如果你这样做:

var v = new View; 

然后v.constructorView。如果你这样做:

var views = [ 
    Backbone.View.extend({}), 
    Backbone.View.extend({}), 
    Backbone.View.extend({}) 
]; 

var v = new views[1]; 
for(var i = 0; i < views.length; ++i) 
    if(v.constructor === views[i]) 
     console.log(i) 

你会在控制台得到1。演示:http://jsfiddle.net/ambiguous/EgURK/

+0

非常好的jsfiddle设置感谢分享! –

-1

我解决这个问题的方法是将this作为构造函数的一部分传入,并在视图内部设置一个“实例变量”。

你会再用线了名为“父” getter函数返回它一拉你的示例代码:

var myView = new MyView(this); 
return myView.parent();