問題タブ [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.
javascript - Durandal アプリでのビューのロード タイムアウトの処理
ビューを読み込もうとすると定期的にタイムアウトするデュランダル アプリがあります。タイムアウト エラーの例を次に示します。
提供された URL を参照すると、考えられる問題がいくつか示唆されます。
- リストされたモジュールのスクリプト エラー
- パス構成が正しくありません
- 複数のモジュール ID が同じファイルにマップされる
これらのどれも私の問題ではありません。これは本物の本物のタイムアウトです。何らかの理由でビュー ファイルを読み込めませんでした。
エラーの処理に関する RequireJS のドキュメントがいくつかありますが、何度も読んだ後でも、ビュー モジュールでロード タイムアウトをトラップする方法がわかりません。
理想的には、私がやりたいことは、a) タイムアウトを延長するか、b) ユーザーに通知を与えて、ビューを再度ロードできるようにすることです。
現在起こっていることは、単にビューの読み込みに失敗し、エラーが発生したというフィードバックがユーザーに返されないということです。AJAX 要求が終了したため、「お待ちください、読み込み中です」ダイアログは消えますが、ビューは変更されません。
durandal - Durandal 2.0 - ネストされたメニュー用の子ルーター?
私はアプリを構築しており、2 層のメニューを表示したいと考えています。両方の層が常に利用可能です。Durandal 2.0は、より簡単なディープリンクを可能にする「子ルーター」をサポートする新しいルーターを導入しました。
私の質問- 「子」ナビゲーション ルートを永続的にロードすることはできますか (親がアクティブでないときにサブメニューをレンダリングします)、または「子ルーター」の設計は、ディープリンクが有効になったときにそれらを評価するために遅延ロードすることを意図していますか?評価される?
Durandal の例では、メイン ナビゲーションがスプラット ルートを登録し、そのビュー モデルがロード/アクティブ化されると、子ルーターが登録されます。
例:Durandal 2.0 で提供されている例では、mian nev は次の場所に登録されています。shell.js
そして、ko/index.js
ビューモデルは子を登録します( on activate()
)
一方、ルートを 1 か所で定義しようとしています。たとえば、次のようになります。
そして、私が苦労している部分は、子ルートを登録することであり、それらに移動するときにそれらを正しく評価します。(メニューのレンダリングは後で来る...)
このナビゲーションをレンダリングする際にさまざまなエラーが発生しました。(アクティブ化されていない親または子のいずれかから) ハッシュを計算しようとすると、ほとんどが内部の router.js エラーです。そのため、すべてのハッシュが定義されています。
ナビゲーションをマップするために取得すると、子ルートにアクセスできないようです.メインのsplatページをエラーなしでロードするだけです.
それで、私はこれについて正しい方法で行っているのだろうかと思っていますか?(すべての子ルートを前もって登録し、2 層メニューをレンダリングしようとしています)。
フォールバックは、サブルーティングに関するデュランダル 1.2の回答のようなものを使用しており、フラット ルーティング登録、カスタム 'isSameItem' 関数、および計算されたオブザーバブルを組み合わせて 2 層ナビゲーションをレンダリングしていると考えています。
javascript - Durandal 2.0.1、Tryactivate が何度も呼び出される
アプリケーションに Durandal 2.0.1 を使用しています。
ビューとビューモデルを構成するために、以下のhtmlコードを使用しています。
私が直面している問題は、上記の divの可視性を切り替えようとするたびに、 tryactivateが何度も呼び出されることです。それは予想される動作ですか、それとも私が間違っていることがありますか。それが既知の動作である場合、誰でもなぜこれが起こっているのかを説明/説明できますか?
なぜこれが起こっているのか、誰でも説明できますか。
前もって感謝します。
knockout.js - ノックアウトとデュランダルを使ったダイナミックな構図がうまくいかない
デュランダル/ノックアウトの使用中に奇妙な問題が発生します。場合によっては、バインディングが正しく機能しないことがあります。この質問に出てきた状況を単純化しました。
次のように、コードのどこかにコンポジション情報を設定しています。
そして、これは私の見解です:
初めて、構成は正常に機能します。しかし、次に変更が行われたときcompositionInfo
(同じ行とコードの同じ場所を使用) には、何も起こりません。
初めて["Activating",...]
ログ ウィンドウに が表示されます。しかし、2回目はそのようなログや["Binding"]
ログはありません。
Durandal と Knockout のコードをトレースしたところ、knockout-2.3.0.debug
ファイル内にevaluateImmediate()
この行を最初に実行する関数があることがわかりました (正しいもの)。
構成がモデルのアクティブ化を開始します。
しかし、それが機能していない場合、次のevaulateImmediate()
コードによって上記のいくつかの行が返されます。
このコードは何のためのものですか? これらの行にコメントを付けると、すべて正常に動作します。
この問題は、コンピューターによって異なります。私のコンピューターでは、ほとんどの場合、初めて機能します。しかし、他のコンピューターではほとんどの場合動作し、約 3/10 のケースで失敗します。
参考までに、Durandal 1.1.1 と Knockout 2.3.0 を使用しています。
javascript - ビューモデルでのデフォルト トランジションのアクティブ化の制御
私の質問は非常に単純で、特別な説明は必要ありません。
Durandal では、viewmodel との切り替え時にトランジションを使用するかどうかを制御できますか?
アニメーションを非アクティブ化できるようにしたい理由は次のとおりです。
quicksearch.js
どこからでもアクセスできるシェル/マスターページに検索フォーム モジュールがあります。入力を検証してから、results.js
ハッシュの後に URL で検索パラメーターを渡して結果ページにリダイレクトするだけです。がサーバーへのresults.js
クエリを処理します。
quicksearch.js
以外のページでモジュールを使用するとresults.js
、アニメーションがトリガーされ、望ましい動作になります。ただし、 onresults.js
で を使用quicksearch.js
すると、URL で変更されるのはパラメーター文字列のみです (ハッシュの直後のモジュール名は変更されません)。それでも、これは からへのresults.js
アニメーションを使用して、再びアクティブ化するライフサイクル全体を通過し、かなり見栄えが悪くなります。results.js
results.js
では、ある条件下で、デュランダルがコンテンツをアニメーション化するのを防ぎ、ビューを作成してバインドする方法はありますか?
durandal - デュランダル第三層サブルーティング
Durandal.js で子ルーターの子ルーターを作成しようとしていますが、ランダムなダムエラー (404 など) が発生します。それは Durandal の問題ですか (つまり、第 3 レベルのサブルーティングがサポートされていない場合)、それとも私のコードの問題でしょうか?
ありがとう
とにかく、ここに私のコードを含めます:
シェルを返す
2 レベルの子を返す
戻る3 レベルの子供
durandal - スプラットルートをデフォルトルートに設定する方法 デュランダル 2.0
私のデフォルト ルートには子ビューがあります。Durandal 2.0 で Splat ルートをデフォルト ルートとして設定できますか? はいの場合、以下のような方法を試してみましたが失敗しました。
});
durandal - durandal.router isNavigating プロパティの奇妙なエラー
durandal ルーターを使用して、ページの読み込み中に回転するアイコンを表示します。これは、それ自体を表示または非表示にするコードです。
ただし、次のようにナビ内に配置したい:
これにより、 Chrome の開発者ツール コンソール ウィンドウ内に「 router is not defined 」というメッセージがスローされます。
しかし、上記の最初のスニペットを使用すると、すべて正常に動作します。
何か案は?