mirror of
https://github.com/angular/angular
synced 2026-05-24 09:28:37 +00:00
As a part of #54154, an old parser behavior came up where two-way bindings were parsed by appending `= $event` to the event side. This was problematic, because it allowed some non-writable expressions to be passed into two-way bindings. These changes introduce a migration that will change the two-way bindings into two separate input/output bindings that represent the old behavior so that in a future version we can throw a parser error for the invalid expressions. ```ts // Before @Component({ template: `<input [(ngModel)]="a && b"/>` }) export class MyComp {} // After @Component({ template: `<input [ngModel]="a && b" (ngModelChange)="a && (b = $event)"/>` }) export class MyComp {} ``` PR Close #54630
24 lines
1.1 KiB
JSON
24 lines
1.1 KiB
JSON
{
|
|
"schematics": {
|
|
"block-template-entities": {
|
|
"version": "17.0.0",
|
|
"description": "Angular v17 introduces a new control flow syntax that uses the @ and } characters. This migration replaces the existing usages with their corresponding HTML entities.",
|
|
"factory": "./migrations/block-template-entities/bundle"
|
|
},
|
|
"migration-v17-compiler-options": {
|
|
"version": "17.0.0",
|
|
"description": "CompilerOption.useJit and CompilerOption.missingTranslation are unused under Ivy. This migration removes their usage",
|
|
"factory": "./migrations/compiler-options/bundle"
|
|
},
|
|
"migration-transfer-state": {
|
|
"version": "17.0.0",
|
|
"description": "Updates `TransferState`, `makeStateKey`, `StateKey` imports from `@angular/platform-browser` to `@angular/core`.",
|
|
"factory": "./migrations/transfer-state/bundle"
|
|
},
|
|
"invalid-two-way-bindings": {
|
|
"version": "17.3.0",
|
|
"description": "Updates two-way bindings that have an invalid expression to use the longform expression instead.",
|
|
"factory": "./migrations/invalid-two-way-bindings/bundle"
|
|
}
|
|
}
|
|
}
|