3

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

例如:

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

谢谢!

4

2 回答 2

3

听起来您正在寻找该constructor物业:

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

所以如果你这样做:

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/

于 2012-06-19T21:54:01.977 回答
-1

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

然后,您将连接一个名为“parent”的 getter 函数,以将其返回为您的示例代码:

var myView = new MyView( this );
return myView.parent();
于 2012-06-19T21:09:56.997 回答