angular-cn/packages/core/schematics/migrations/template-var-assignment
Alan 01677b21b6 refactor(core): add `createMigrationCompilerHost` (#32827)
Current we need to create and override certain compiler host methods in every schematic because schematics use a virtual fs. We this change we extract this logic to a common util.

PR Close #32827
2019-10-04 11:45:35 -07:00
..
angular refactor(core): template-var-assignment migration incorrectly warns (#30026) 2019-04-22 11:16:19 -07:00
BUILD.bazel refactor(core): move google3 migration rules into single directory (#30956) 2019-07-23 15:52:40 -07:00
README.md refactor(core): polish failure messages for template-var-assignment schematic (#29708) 2019-04-08 09:46:57 -07:00
analyze_template.ts refactor(core): template-var-assignment migration incorrectly warns (#30026) 2019-04-22 11:16:19 -07:00
index.ts refactor(core): add `createMigrationCompilerHost` (#32827) 2019-10-04 11:45:35 -07:00

README.md

Assignments to template variables

With Ivy, assignments to template variables are no longer supported as template variables are effectively constants.

This means that assignments to template variables will break your application once Ivy is enabled by default. For example:

<button *ngFor="let option of options"
       (click)="option = 'newButtonText'">
  {{ option }}
</button>

In the example from above, a value is assigned to the option template variable on click. This will ultimately break your application and therefore the logic needs to be adjusted to not update the option variable, but rather the given element in the options array:

<button *ngFor="let option of options; let idx = index"
       (click)="options[idx] = 'newButtonText'">
  {{ option }}
</button>