80394ce08b
fix(@schematics/angular): TypeScript related migrations should cater for BOM In the CLI `UpdateRecorder` methods such as `insertLeft`, `remove` etc.. accepts positions which are not offset by a BOM. This is because when a file has a BOM a different recorder will be used https://github.com/angular/angular-cli/blob/master/packages/angular_devkit/schematics/src/tree/recorder.ts#L72 which caters for an addition offset/delta. The main reason for this is that when a developer is writing a schematic they shouldn't need to compute the offset based if a file has a BOM or not and is handled out of the box. Example ```ts recorder.insertLeft(5, 'true'); ``` However this is unfortunate in the case if a ts SourceFile is used and one uses `getWidth` and `getStart` method they will already be offset by 1, which at the end it results in a double offset and hence the problem. Fixes #30713 PR Close #30719 |
||
---|---|---|
.. | ||
angular | ||
google3 | ||
BUILD.bazel | ||
README.md | ||
analyze_template.ts | ||
index.ts |
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>