1

ユーザーがクエリを入力すると、結果が$httpサービスで更新される検索ページがあります。

$compileさまざまな種類のウィジェットを表示するために使用します。初めてページにアクセスしたり、ページをリロードしたりすると、すべて正常に動作しますが、次のようなものを使用して場所を設定すると、何が起こりますか

$location.path("/search/" + $scope.q);

そしてそれがコントローラーと検索プロセス全体をトリガーすると、$compile関数はウィジェットを見つけることができません。

この理由は何でしょうか?

編集: $compile が最初に機能したのに、その後は機能しなかった理由を見つけました。後でわかったもう 1 つのことは、ビューが更新されていたことです。つまり、テキスト ボックスに何かを入力すると、すべてが正常に機能し始めました。問題は $templateCache に関連していました/関連しています。基本的にキャッシュ コールバックは、入力ボックスに入力したり、モデル バインディングが関連付けられている入力から文字を削除したりするなど、ユーザーからのユーザー インタラクションが発生するまで発生しませんでした。

angularのソースを編集してキャッシュの使用を削除した後、正常に機能しました。angularでこれに関する問題を提起しました

https://github.com/angular/angular.js/issues/1927

4

0 に答える 0