yandex-ui/noscript — pull request #165 by edoroshenko (2013-10-09 14:55:50+00:00)
Title: Порядок событий при изменении модели

Сейчас наши супермодельки при `.set` кидают пачку событий.
Сначала идут события с jpath типа `ns-model-changed.{jpath}`, а затем просто `ns-model-changed`.
ns.Update завязан на то, что при изменении модели вьюшка автоматом инвалидируется. Т.е. ns.View честно подписывается на `ns-model-changed` для инвалидации.
Если предприимчивый разработчик подпишется на `ns-model-changed.{jpath}`, да ещё и сделает там page.go, то Update начнётся до того, как ns.View, зависящий от этой модели, проинвалидируется. В такой ситуации возможны баги при рендеринге, обновлении, перерисовке итд.

Что я сделал: я поменял порядок событий. Сначала `ns-model-changed`, затем кастомные `ns-model-changed.{jpath}`. Так мы почти гарантируем, что обработчики, висящие на change у модели выполнятся после обработчика от ns.View.

Рассматривал и другие способы решения:
- добавить другое событие, например `ns-model-set`
- запускать обработчики с нулевым таймаутом.
Первый способ показался наиболее адекватным.

Тесты работают.

cc @doochik @chestozo