2014-03-26 3 views
0

Возможно ли в AngularJS сделать область действия $ apply без возможности стрельбы $ watch? Как это можно достичь? Я хочу обновить модель, но не стрелять $ watch в конкретном случае.

ответ

1

Нет, это не так. Когда вы назовете применение, он создаст новый цикл дайджеста, который пройдет через всех наблюдателей, зарегистрированных через приложение. И обновление модели в основном вызывает часы.

Возможно, вы можете поймать это обновление в своих $ watch или сделать что-то умное с ним, как де-регистр при вызове $ apply, а затем зарегистрировать его снова.

Возможно, это стоит, если вы публикуете то, что вы пытаетесь достичь.

PS: если вы хотите позвонить в $ apply, самый безопасный способ сделать это - это окружение любого кода, который вы хотите оценить, с помощью $ evalAsync.

Смежные вопросы