我正在实现一个管理视图切换的系统,以便在渲染另一个视图之前清除该视图携带的任何事件。但是,我需要使用视图的实例在数组中查找视图。如何获取视图实例的视图类?
例如:
var myView = new MyView;
return myView.parent(); // this should return MyView
谢谢!
我正在实现一个管理视图切换的系统,以便在渲染另一个视图之前清除该视图携带的任何事件。但是,我需要使用视图的实例在数组中查找视图。如何获取视图实例的视图类?
例如:
var myView = new MyView;
return myView.parent(); // this should return MyView
谢谢!
听起来您正在寻找该constructor
物业:
返回对创建实例原型的 Object 函数的引用。
所以如果你这样做:
var v = new View;
然后v.constructor
会View
。如果你这样做:
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/
我解决这个问题的方法是this
作为构造函数的一部分传入并在视图内设置一个“实例变量”。
然后,您将连接一个名为“parent”的 getter 函数,以将其返回为您的示例代码:
var myView = new MyView( this );
return myView.parent();