1

Backbone と Backbone-Marionette に関する多くのブログやチュートリアルを読みました。一部のブログでは、作成者が履歴を開始していますBackbone.history.start() 。たとえば、アプリ ' initialize' イベント、アプリ ' initialize:after' イベント、アプリ ' start' イベント、ルーター ' initialize' イベントなどです。どこでも完璧に機能しています。

しかし、それでも誰でも説明を手伝ってもらえますか。これがBackbone.history.start().

4

2 に答える 2

4

最も確実な方法は を使用するinitialize:afterことです。これは、すべての初期化子が実行された後に履歴を開始するためです (名前が示すように)。通常、ルーターは関数で宣言されるinitializeため、履歴が開始されるまでに、すべてのルーターの準備が整い、ルーティング イベントをリッスンすることになります。

単純にイニシャライザを使用するかstart、関連付けられたルーターがそのルートを処理する準備が整う前に、履歴を開始する (およびルートをトリガーしようとする) リスクがある場合。

あなたが見たケースでは、ルーターが 1 つしか関係していないため、通常は機能します。しかし、このinitialize:after方法はすべての場合に機能します。

于 2013-11-13T16:48:31.617 に答える
2

最善の方法はありません。これは「開始して忘れる」メソッドであり、再度アクセスすることはないため、アプリケーションで開始される限り、(上記のメソッドのいずれかのように) どこに配置しても違いはありません。これはすべてスタイルに関するものです。

于 2013-11-13T06:57:50.597 に答える