1

私はこのバックボーンアプリを見ています:

https://github.com/ccoenraets/nodecellar/blob/master/public/js/main.js

そしてそれがどのように機能するかを理解しようとしています。main.js ファイルで、彼は次のように WineView を呼び出していることがわかります。

wineList.fetch({success: function(){
            $("#content").html(new WineListView({model: wineList, page: p}).el);

これについていくつか質問があります。

1) この時点から $("#content").... を呼び出すのはなぜですか? ビュー オブジェクトを作成するポイントの 1 つは、その新しいオブジェクトの "Render" メソッドが HTML インジェクションを処理できるようにすることではないでしょうか。実際、彼のWine View Objectにはrenderメソッド(ここでは/public/js/views/winelist.js)がありますが、この呼び出しは何の役に立つのでしょうか?

2) 最後に EL プロパティを追加するのはなぜですか? EL は、View が「アタッチ」された単なる 1 つのタグだと思っていました。タグが 1 つだけの場合、探しているすべての新しい HTML をどのように生成するのでしょうか?

3) 最初に新しいビュー オブジェクトに EL タグを設定するにはどうすればよいですか? 明示的に述べていない場合、EL はデフォルトで空の DIV になり、彼のコードでこの View に対して EL が定義されている場所がどこにもないと思いました。

誰かがこれをクリアできることを願っています!

4

1 に答える 1

3

そもそもELタグはどうやってここに設定されるのでしょうか?

el指定しない場合は、バックボーン コード自体が作成します。ご指摘のとおり、デフォルトは空の divです。

this.el は、指定されている場合、ビューの tagName、className、id、および属性のプロパティから作成されます。そうでない場合、el は空の div です。

elがこの方法で作成された場合、DOM にアタッチされないことに注意してください。したがって、上記のコードはelプロパティ (ビューのルート タグ) を取得し、それを「#content」の下の DOM にアタッチする必要があります。

新しいオブジェクトの「Render」メソッドが HTML インジェクションを処理できるように、ビュー オブジェクトの作成を呼び出すポイントの 1 つではありません

厳密に言えばそうかもしれませんが、必ずしもそうとは限りません。Backbone.js は、アプリケーションの構造にとらわれず、モデルやビューに厳密な要件を課しません。Backbone アプリでは、このようなさまざまなアプローチが多数見られます。

于 2013-09-10T22:34:42.663 に答える