17

私は次のアクションを持っています

ビューでng-click -> jQuery Qtip を表示するjQuery ajax関数を呼び出します-> Qtip ポップアップで、要素をng-clickします -> $http ポストを実行し、$scope を更新するためのコールバックをいくつか持っています

したがって、これらすべてのことは適切に行われています。しかし、最終段階でコールバックで行われた変更に従って、更新がビューに反映されていません。

私の見解では「ng-mousemove」の機能があります。そのため、マウスを動かすたびに、ビューの更新が反映されます。

ここで何が間違っていますか?角度と非角度の間の移行が原因ですか? 誰でもこれを解決する方法を教えてもらえますか?

4

2 に答える 2

36

ドキュメントが説明するように:

$ apply()は、Angularフレームワークの外部からAngularで式を実行するために使用されます。(たとえば、ブラウザーのDOMイベント、setTimeout、XHR、またはサードパーティのライブラリから)。Angularフレームワークを呼び出しているため、例外処理の適切なスコープライフサイクルを実行し、ウォッチを実行する必要があります。

したがって、次のようなjQueryコードがある場合

$('#myDiv').on('click', function() {
  // do stuff
  $scope.$apply();
});
于 2013-01-03T08:42:09.943 に答える
4

angular Jsに何かが変更されたことを伝える必要があります$scope.$apply().

理由についての素敵なブログは次のとおりです

于 2013-01-03T08:31:24.993 に答える