fix(ivy): ensure template styles/classes are applied before directives are instantiated (#29269)

Angular Ivy interprets inline static style/class attribute values as instructions that
are processed whilst an element gets created. Because these inline style values are
referenced by style/class bindings, their inline style values are applied at a later
stage. Despite them being eventually applied, their values should be applied earlier
before any directives are instantiated so that directive code can rely on any inline
style/class changes.

This patch ensures that all static style/class attribute values are applied (rendered)
on the element before directives are instantiated.

Jira Issue: FW-1133

PR Close #29269
This commit is contained in:
Matias Niemelä
2019-03-12 14:14:08 -07:00
parent 1a9ab2727e
commit 1877e6c3f8
8 changed files with 125 additions and 62 deletions

View File

@ -470,6 +470,12 @@ export const enum InitialStylingValuesIndex {
*/
DirectiveOwnerOffset = 2,
/**
* The first bit set aside to mark if the initial style was already rendere
*/
AppliedFlagBitPosition = 0b0,
AppliedFlagBitLength = 1,
/**
* The total size for each style/class entry (prop + value + directiveOwner)
*/