@@ -211,7 +211,7 @@ function createView(
211211 viewContainerParent : null , parentNodeDef,
212212 context : null ,
213213 component : null , nodes,
214- state : ViewState . FirstCheck | ViewState . CatDetectChanges , root, renderer,
214+ state : ViewState . CatInit , root, renderer,
215215 oldValues : new Array ( def . bindingCount ) , disposables
216216 } ;
217217 return view ;
@@ -323,6 +323,12 @@ export function checkNoChangesView(view: ViewData) {
323323}
324324
325325export function checkAndUpdateView ( view : ViewData ) {
326+ if ( view . state & ViewState . BeforeFirstCheck ) {
327+ view . state &= ~ ViewState . BeforeFirstCheck ;
328+ view . state |= ViewState . FirstCheck ;
329+ } else {
330+ view . state &= ~ ViewState . FirstCheck ;
331+ }
326332 Services . updateDirectives ( view , CheckType . CheckAndUpdate ) ;
327333 execEmbeddedViewsAction ( view , ViewAction . CheckAndUpdate ) ;
328334 execQueriesAction (
@@ -345,7 +351,6 @@ export function checkAndUpdateView(view: ViewData) {
345351 if ( view . def . flags & ViewFlags . OnPush ) {
346352 view . state &= ~ ViewState . ChecksEnabled ;
347353 }
348- view . state &= ~ ViewState . FirstCheck ;
349354}
350355
351356export function checkAndUpdateNode (
@@ -453,7 +458,7 @@ function checkNoChangesQuery(view: ViewData, nodeDef: NodeDef) {
453458 if ( queryList . dirty ) {
454459 throw expressionChangedAfterItHasBeenCheckedError (
455460 Services . createDebugContext ( view , nodeDef . index ) , `Query ${ nodeDef . query ! . id } not dirty` ,
456- `Query ${ nodeDef . query ! . id } dirty` , ( view . state & ViewState . FirstCheck ) !== 0 ) ;
461+ `Query ${ nodeDef . query ! . id } dirty` , ( view . state & ViewState . BeforeFirstCheck ) !== 0 ) ;
457462 }
458463}
459464
@@ -543,13 +548,13 @@ function callViewAction(view: ViewData, action: ViewAction) {
543548 switch ( action ) {
544549 case ViewAction . CheckNoChanges :
545550 if ( ( viewState & ViewState . CatDetectChanges ) === ViewState . CatDetectChanges &&
546- ( viewState & ( ViewState . Errored | ViewState . Destroyed ) ) === 0 ) {
551+ ( viewState & ViewState . Destroyed ) === 0 ) {
547552 checkNoChangesView ( view ) ;
548553 }
549554 break ;
550555 case ViewAction . CheckAndUpdate :
551556 if ( ( viewState & ViewState . CatDetectChanges ) === ViewState . CatDetectChanges &&
552- ( viewState & ( ViewState . Errored | ViewState . Destroyed ) ) === 0 ) {
557+ ( viewState & ViewState . Destroyed ) === 0 ) {
553558 checkAndUpdateView ( view ) ;
554559 }
555560 break ;
0 commit comments