2011-10-19 10 views
0

現在、Backboneルーターは、モデルの状態に応じて徐々に各テンプレート(jqueryテンプレート)を通り、ビューのさまざまな部分を同化するように設定されています。バックボーンビューがDOM要素を組み立てている間に、DOM要素にイベントトリガーを設定するにはどうすればよいですか?

rhsViewで

一部のルータの方法では、私はlhsview.renderを呼び出し、rhsview.renderい

$(appView.el).append(this.lhsView.render().el); 
    $(appView.el).append(this.rhsView.render().el); 
    appView.render(); 

initialize : function(){ 
     this.initializeGraph(); 
    }, 
    initializeGraph : function(){ 
     $('#product-graph').tmpl({this.options.graph}).appendTo($(this.el));   
     // Call plot from jquery flot 
     $.plot($("#graph"), data, options); 
    } 

$ .PLOTを(呼び出しの問題は)idを持つdiv要素ということです=グラフはDOMにまだ添付されていません。どのようにして、initializeGraphメソッド自体のDOM内にある瞬間に、id = graphでdivに$ .plot()を設定することができますか?

答えて

2

#graph要素はあなたのビューのelの一部である場合、あなたはこれを正しく#graphを選択し、それにすべてをプロットしますthis.$("#graph")

ビュー内から
RHSView = Backbone.View.extend({ 
    initializeGraph: function(){ 
    $('#product-graph').tmpl({this.options.graph}).appendTo($(this.el));   

    // if your template generated the #graph 
    // then it will be available from within this 
    // view's el 
    var graph = this.$("#graph"); 

    $.plot(graph, data, options); 
    } 
}); 

を呼び出すことによって、それをアクセスすることができます。 DOMに要素を追加すると、要素が正しく表示されます。

私はこの情報をDOMに追加する前にメモリ内の情報を事前レンダリングするために多く使用します。

+0

恐ろしいデリック。完璧に働いた。 – papdel

関連する問題