3

別のビューをレンダリングする前に、そのビューによって実行されるイベントをクリアするために、ビューの切り替えを管理するシステムを実装しています。ただし、ビューのインスタンスを使用して配列内のビューを検索する必要があります。ビュー インスタンスのビュー クラスを取得するにはどうすればよいですか?

例えば:

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

ありがとう!

4

2 に答える 2

3

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/

于 2012-06-19T21:54:01.977 に答える
-1

これを解決する方法は、コンストラクターの一部として渡しthis、ビュー内に「インスタンス変数」を設定することです。

次に、「親」という名前のゲッター関数を結び付けて、サンプル コードのように返します。

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