1

さまざまな理由からここには触れませんが、ITHit Ajax ファイル ブラウザーを Angular コントローラー内にラップすることに成功しました。Angular コントローラー自体が読み込まれ、Angular-UI-Router UI ビューにラップされます。

すべての設定は、先行するサービス コールによって構成され (移動する URL を使用するクラウド環境をサポートするため)、CORS (クロス オリジン リクエスト) の問題もすべて解決し、Oath2 のカスタム実装を配線しました。 DAV サーバー。これらすべてが、コンテンツ ブラウジングの実装のかなり中心的な要素として、ITHit File Browser と正常に連携しています。

現在、特定の領域をナビゲートすると、Angular-ui-router が URL を微調整し、ビューが応答し、ITHit をラップする Angular Controller がビューの変更に応答し、(ビューをリロードせずに) 適切な DAV URL を再フェッチします。利用可能な IT ヒット コマンド (例: SetSelectedFolderAsync )

これが私の(できれば単純な)課題です。特定の領域に移動すると、Angular-UI-router は含まれている UI ビューを新しいコンテンツでリロードするだけですが、戻ると、ITHit Ajax File Browser は再描画しません。

ここに私の課題に対するいくつかのガイドラインがあります (私が扱えるものを提供してくれれば無視できます):

  1. ITHit コンテナーを「非表示」にする必要は避けたいと思います (これは無関係であり、ビューの状態が変化したときに最新の状態に保つ必要がないためです。これらの変更は DAV パスに影響します)。また、不要なネットワーク トラフィックについても心配したくありません。Angular-UI-Router に、ブラウザーが置かれている ui-view でそのことをさせたいと思っています。
  2. Angular Controller に対して呼び出し可能にする必要がある呼び出しをすべて保持したいと思います (ユーザーがナビゲートすると変化する、認証、パス解決、およびコンテキスト設定の構成を管理しています)。
  3. ITHit ソリューションによって生成されたすべて (最も重要なもの) はシングルトン (「DavBrowserService」) に保存されます。そのため、ファイル ブラウザー ビューに戻ると、次のような最初のインスタンス化からすべてが保存されます。
    • ITHit オブジェクトのインスタンス
    • ITHit.Loader の生成されたインスタンス
    • 以前に生成された AjaxFileBrowser.Controller オブジェクト (ITHit.oNS.Controller) のインスタンス
    • 以前に生成された WebDavSession オブジェクト ( ITHit.oNS.WebDavSession) のインスタンス

上記が整ったら、これらのインスタンスを、返された dom-node ('afb-content-div') に単純に再接続できることを願っています。どんな助けでも大歓迎です!

4

1 に答える 1

0

更新: 以下の「答え」は機能しているように見えますが、実際にはそうではありませんでした。ただし、ユーザーが移動したときに DOM インスタンスを取得してメモリに保存し、ユーザーが適切な領域に戻った後に再度接続することで、この問題を回避しました。このように、すべての ITHit Magic は適切な DOM ノードに結び付けられたままであり、部分的な再インスタンス化の奇妙さについて心配する必要はありません。今はかなりしっかりしているようです。


私はそれを考え出した!!!次のように呼び出してコントローラーを再インスタンス化すると、次のようになります。

   var controllerInstance = new ITHit.oNS.Controller( originalSettingsObj );

すべてが魔法のように再配線されます!「afb-content-div」HTML DOM ノードに子があるかどうかを検出して、上記のコードをラップしました。

コードを掘り下げた結果、これは ITHitLoader.oninit コールバック (AjaxFileBrowserLoader インスタンスから) へのパラメーターとして返される引数オブジェクトのようです。

遊んでくれてありがとう!

于 2015-06-16T16:34:33.647 に答える