3

私は可能な限り遅延読み込みをしようとしていますが、

しかし、私はどのように開始するかについて困惑しています。これが私の「順序付けられた理解」です:

目的: サーバーに存在する連絡先を含む連絡先ページを作成する

  • Step1.0: ルーターを使用するには:<div id="contacts">ルールをトリガーするために存在する必要があるため、(Step0.9) に戻ります。
  • Step0.9: body にこの div を作成しました。わかりました。ルーターは #contacts を見つけます。ああ、でもこれはビューです。わかりました。(Step0.8) に戻ります。
  • Step0.8: で作成した div を消去し、body代わりにビューに置き換えます。
contactsView = Backbone.View.extend 
tagName: 'div',
id: 'contacts'

遅延読み込みにするために、このビューは #contact がルーターテーブルでトリガーされたときにのみ作成する必要がありますが、本文から削除しただけで、もう存在しません。Step1.0 に戻りました???

いくつかのチュートリアルが見つかり、グローバル変数の設定が示されています...ルーター、ビュー、それらのモデル、およびコレクションを使用する一般的なシナリオをどのように進めるべきか(回答にコードは必要なく、各ステップに1行のみ)?

複数の方法があることはわかっていますが、要素を作成するための最も一般的なバックボーン ステップ戦略は何ですか。

前もって感謝します。

4

2 に答える 2

1

私はあなたを正しく理解したかどうか100%確信していません。連絡がない場合は、コメントでお知らせください。

一般的な使用法に関するあなたの質問には多少の混乱があるようBackbone.Routerです。ルーターがルートをURLフラグメント#contactsにマップする場合、それはIDを持つDOM要素とは何の関係もありません#contacts。ハッシュ記号は、たまたまURLフラグメント idCSSセレクターの識別子ですが、ここで類似性が終わります。

通常、私のルーターは次のようになります。

var AppRouter = Backbone.Router.extend({
  routes: {
    contacts: "contactList"
  },
  contactList: function() {
    var contacts = new ContactCollection();
    var view = new ContactListView({collection:contacts});
    view.render().$el.appendTo("#contacts");
  }
});

#contacts要素をそのように呼び出す必要がないことに注意してください。これを呼び出すことも#pony、必要に応じてビューをドキュメントに直接レンダリングすることもできますbody

したがって、これらの用語でのワークフローは次のとおりです。

  1. ルーターがヒットする
  2. コレクションが初期化されます
  3. ビューがレンダリングされます
于 2013-01-29T18:25:15.233 に答える
1

私が行う通常の方法は

  • div#contacts体内に搭載する
  • ルーターは、ルーター内#contactsのメソッドにマップしますshowContacts
  • showContacts はビューを作成し、目的の div にアタッチします

    var view = new contactsView();

    $('#contacts').empty().append(view.el);

    view.render();

  • の定義で id を定義する必要はありませんcontactsView

于 2013-01-29T18:00:34.280 に答える