1

頻繁に更新されるさまざまなコンポーネントが多数ある、かなり複雑なアプリがあります。たとえば、時計です。

ページのサブセクションのみで $apply / $digest を一度に呼び出すことはできますか? たとえば、ページ上のすべてのウォッチャーを 1 クロック ティックごとに呼び出す必要はありません。

$scope.$apply を完全にバイパスし、ディレクティブでクロック要素を手動で更新するだけで、これを達成できることがわかっています。私に希望はありますか?

編集: 実際には、$apply は $rootScope でダイジェストを開始するため、$apply ではなく、チェックしたいスコープから開始して、$digest を実行することを望んでいるようです。これは有効な方法ですか?

http://plnkr.co/edit/C8aOswf46qx2GoD5uL9Y?p=preview

4

2 に答える 2

0

呼び出すたびに、そのスコープ内にあるすべてのスコープ$scope.$apply()も呼び出します。$apply()ページの限られたセクションで呼び出したい場合$apply()、そのセクションには独自のスコープが必要です。これは、ページのそのセクションにコントローラーを追加することで実行できます。次に、そのコントローラーを使用$scope.apply()して、セクションコントローラーを使用して、ページのそのセクション内のスコープを更新できます。

-- 編集 -- $apply と $digest の違いの詳細については、以下のコメントを参照してください。

以下も参照してください。

于 2013-07-25T23:00:31.237 に答える