0

ナビゲーションにルートを表示する目的でデュランダルにルートを追加することは可能ですが、ルートが見つからない場合は RequireJS エラーを適切に処理できますか?

例: 4 つのページがある場合 - 2 つが進行中ですが、2 つが来月完成します。

router.map([
           { route: ['', 'home'], moduleId: 'test/index', title: 'Almost finished', nav:                 
           { route: 'one', moduleId: 'test/one', title: 'In progress', nav: true },               
           { route: 'two', moduleId: 'test/two', title: 'Still to be complete', nav: true },                   
           { route: 'three', moduleId: 'test/three', title: 'Validation test', nav: true }
       ]).buildNavigationModel()
         .activate();

router.mapUnknownRoutesメソッドは、ルーターにないルートのみを処理します。例: には適切なロガー メッセージを提供できますが'test/doesntexist'、JS エラーが発生します (そしてアプリがクラッシュします)'test/three'

4

2 に答える 2

2

RequireJS は、モジュールをロードしようとしているときに発生するエラーを処理する方法を提供します。各モジュールに特定のハンドラーを提供するか、グローバル エラー ハンドラーを設定することができます。

詳細については、次のリンクを参照してください: http://requirejs.org/docs/api.html#errors

ロード失敗ハンドラーを使用する場合は、返されるフォールバックまたはデフォルトのモジュールを提供できます。- もちろん、Durandal と組み合わせて使用​​すると、Durandal が別のビューを探したり、Durandal がビュー ID を導出するタイミングによっては、ビューとビュー モデルのペアが一致しない場合があります。

グローバル ハンドラーを使用する場合は、エラーが発生した場合にウィンドウの場所を別の URL に変更するなど、何らかの修正措置を講じる必要があります。

于 2013-10-31T12:02:40.050 に答える
1

モジュールのロードは によって処理されrequirejs、この状況を適切に処理する方法があるとは思えません。test/wipしかし、空のモジュールを追加して、test/wip.html何も表示しないか、work in progress.

于 2013-10-31T08:25:02.600 に答える