[ns.Events] Метод once для одноразовых событий. Fix #422
failing test for hasDataChanged
fix model behaviour and more tests
Merge pull request #431 from chestozo/fix-model-hasdatachanged

Fix model hasdatachanged
Merge pull request #423 from yandex-ui/ns-update-without-request

[ns.Update] Не вызывать ns.request, если все модели валидны
Merge pull request #427 from yandex-ui/issue-400

[ns.View] Удалить #tmpl. Fix #400.
[ns.router] #generateUrl генерит невалидный unicode

Проблема в $.param + traditional, он пробел заменяет на "+", а не на "%20".
Заменил на собственную функцию.
Merge pull request #424 from yandex-ui/issue-422

[ns.Events] Метод once для одноразовых событий. Fix #422
[ns.page] Вызов ns.page.go порождает дублирование истории

Каждый вызов ns.page.go() без параметров добавляет в историю браузера точно такой же URL и кнопка "Назад" работает неправильно
[ns.page] Вызов ns.page.go порождает дублирование истории

Добавил поддержку 'preserve'
[ns.View] При обновлении вид должен реинвалидировать своих детей

Иначе, он может их схлопнуть.
Пример ситуации описан в тесте.
[ns.View] Утечки памяти

Закрыл таким способом костыльком:
Перед updateHTML проходимся по всем видам и кидаем hide/htmldestroy, в событиях от updateHTML исключаем дублирующий hide/htmldestroy.
[ns.View] При обновлении вид должен реинвалидировать своих детей

Коллекцию это тоже касается
[ns.ViewCollection] Обновление частично валидных коллекций

Создание yate-дерева и обновление DOM должны работать под одним правилам
Эксперимент по честным this.params у ns.View

Теперь this.params всегда указывают на союственные параметры вида
0.4.4 -> 0.4.5: сломались клики по обычным ссылкам. Fix #413
Issue #335 fix, function method source code in data-key html attribute.
Исходный код метода в html-атрибуте data-key #335

Тест
[ns.View] Правильное построение ключа, если model.params - функция
Merge remote-tracking branch 'origin/generate-utf-url' into unquiet-mail