問題タブ [durandal-navigation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
durandal - Durandal 子ルーターがバインドを 1 回だけ更新する
私が作成したルーターは、ナビゲーション モデルを正常に構築しますが、その中でページが読み込まれるたびに更新する必要があるいくつかのバインディングを更新することができませんchildRouter
( app.pageTitle
、app.pageDescription
)。
activate
これらの更新をデュランダルのライフサイクル (イベントのようなもの) にマッピングする方法はありますか?
javascript - 既存のインスタンスのオーバーライド メソッド
RequireJS を使用して既に作成されている既存の Durandal ルーター プラグイン インスタンスを拡張しようとしています。
map()
追加のマッピング パラメータを追加するには、メソッドをオーバーライドする必要があります。
変更されたメソッドから元のメソッドにアクセスするにはどうすればよいですか?
index.js
childRouter.js
javascript - デュランダル起動、子ルーターの切り離しイベントが発動しない
次の Durandal子ルータープラグイン構成を使用すると、Durandal のライフサイクルで説明されてdetached
いるおよびactivate
イベントが取得されませんが、他のイベントは機能します。
これは、コンテナーchildRouter
のコンテンツを制御する単一ページのアプリケーションです。div
それぞれchildRouter
がモジュールに対応し、一度に 1 つだけを使用attached
し、他のものはdetached
.
アプリケーションはchildRouter
モジュールごとに個別のインスタンスを使用し、2 つのモジュール間のナビゲーションが発生するたびにdetached
およびイベントがトリガーされることを期待しています (つまり、 getおよびshould get )。activate
moduleOLD
detached
moduleNEW
attached
ドキュメントには、Durandal ライフサイクル イベントが自動的にトリガーされると記載されています。
緑で強調表示された行は、作成時に常に実行されます。
このようには機能しません。これは、次のことが原因である可能性があります。
- 子ルーターが相互にアタッチ/デタッチされていることを通知されていない(つまり、何らかのイベントにサブスクライブする必要がある)
- 親ルーターとは異なる動作をする子ルーター
detached
とactivate
. _
detached
およびactivate
のイベントをトリガーする方法はchildRouter
?
出力 (エラーなし):
javascript - Durandaljs ルーターが「trigger: false」パラメーターに関係なくページをリロードする Firefox の場合
URLハッシュを変更する必要がありますが、ページをリロードしないでください(モジュールのアクティブ化をトリガーしない)ので、次のようにします:
また
どちらも、Firefox を除くすべてのブラウザーで動作します。私の Firefox のバージョンは 44.0.2 です。
誰かがこの動作に遭遇しましたか? 回避策はありますか?
編集
durandaljsを介して解決策がなかったので、単に使用しました
durandal - Durandal の activate コールバックから promise を返した後の戻るボタンの処理方法
Durandal 2.1 を使用してモバイル アプリケーションを開発しています。
ドキュメントには、 activate コールバックから promise を返すことができ、失敗した場合はナビゲーションをキャンセルする必要があると記載されています。
その機能を使用しようとしましたが、アプリケーションの戻るボタンが壊れてしまいます。
router.js
Durandal のプラグイン コードでわかるように、cancelNavigation
関数は次の方向に移動していlastUrl
ます。
その動作のため、ナビゲーションのキャンセル後に戻るボタンを使用すると、エラーの原因となったページに戻るため、期待される結果が得られません。
この機能を間違った方法で使用していませんか?
私たちの目標は、 activate 関数でデータを読み込んで、エラーが発生した場合は現在のページに戻ることです。
これに関するヘルプは大歓迎です。
javascript - Durandal: 同じビューモデル (コントロール) を 2 つの異なる変数として定義する
そのため、同じビューモデル内の 2 つの異なる場所で使用するスクローラー コントロールを作成しました。たとえば、次のようになります。
コントロールは mainScrollControl と modalScrollControl が設定されている両方のインスタンスで正常に読み込まれますが、コントロールが個別に定義されていても、データは共有されています (モーダルのスクローラー位置を変更し、メイン ページでも変更されます)。mainScrollNav と modalScrollNav は、独立したビューモデルではなく、単一のサービス ビューモデルにリンクしているようです。私はこれを正しい方法で行っていますか、それとも何か他のものを使用する必要がありますか?
javascript - Durandal Child ルーターがビューを見つけられない
この問題に入る直前に、ここに私のプロジェクト構造の概要を示します
ここで、子ルーターを含む mywork という Product1 のセクションをセットアップしました。shell.js のコア ルートは、splat を使用して設定されます。
次に、子ルートが次のように作成されます
主な問題は、ナビゲーションバーからページにアクセスすると、エラーが発生することです...
それでも、概要ページのビューは、ルート [''] によって定義された問題なく機能します。ビューモデルがテキストであるにもかかわらず、他のビューが見つからない理由についてのアイデア! エラーのパスの前に?
asp.net-mvc - MVC エリアを使用した複数の SPA - 外部 SPA ルーター ルートのナビゲート
ルーターに設定されたルートのセットリストの外に移動したい場合、クライアント側のルーティングをエスケープするにはどうすればよいですか?
Durandal.js を使用してプロジェクトを作成し、さまざまなエリア内に SPA を作成しました。私が遭遇した問題は、現在のSPAの外に移動して別のSPAに移動したり、SPAではなく単にcshtmlページであるアプリケーション全体のホームページに戻ったりしたい場合です。
私が試みたのは、Durandal の mapUnknownRoutes ハンドラーを使用してインターセプトし、window.location.href を使用してナビゲートすることです。これは機能しますが、アプリケーションのホームページ (「/」) に移動したい場合、ルーターは SPA の「ルート」と一致し、ホームページに移動せず、代わりに SPA のルート ルートに移動します。
この例のエリア ルートは「/spaHome」で、その MVC ルートは次のようになります。
Durandalルーターをセットアップするために私が行ったことは次のとおりです。
これに対する正しい方向へのポインタまたはリードは大歓迎です!