File tree Expand file tree Collapse file tree 1 file changed +24
-0
lines changed Expand file tree Collapse file tree 1 file changed +24
-0
lines changed Original file line number Diff line number Diff line change 951
951
// всегда собираем данные, в том числе закешированные модели для async-view
952
952
tree . models = this . _getModelsForTree ( ) ;
953
953
954
+ this . _fixTreeStateByModels ( tree ) ;
955
+
954
956
// для асинхронного вида не идем вниз по дереву
955
957
if ( tree . state === 'loading' ) {
956
958
return tree ;
968
970
return tree ;
969
971
} ;
970
972
973
+ /**
974
+ * Обновляем состояние отрисовки дерева исходя из состояния моделей.
975
+ * @param {ns.View~UpdateTree } tree Дерево для шаблонизации вида.
976
+ * @private
977
+ */
978
+ ns . View . prototype . _fixTreeStateByModels = function ( tree ) {
979
+ var hasLoadingModels = false ;
980
+
981
+ for ( var id in tree . models ) {
982
+ // Если модель в статусе ошибки (это может быть и не ошибка, но так устроен _getModelsForTree)
983
+ // и при этом самой ошибки нет - значит, возможно, она ещё не загрузилась.
984
+ if ( tree . models [ id ] . status === 'error' && ! tree . models [ id ] [ id ] ) {
985
+ hasLoadingModels = true ;
986
+ break ;
987
+ }
988
+ }
989
+
990
+ if ( hasLoadingModels ) {
991
+ tree . state = 'loading' ;
992
+ }
993
+ } ;
994
+
971
995
/**
972
996
* Дополняет дерево видов.
973
997
* @description
You can’t perform that action at this time.
0 commit comments