angular/packages/core
Kristiyan Kostadinov 702ab28b4c feat(core): add support for model inputs (#54252)
Adds support for model inputs in the framework. `model()` returns a writable signal that implicitly defines a input/output pair that can be used either in two-way bindings to keep two values in sync or by binding individually to the input and output. When the value of the `model` changes, it will emit an event with the current value.

Furthermore, these changes expand two-way bindings to accept `WritableSignal`. This will make it easier to transition existing code to signals in a backwards-compatible way.

Example:

```ts
@Directive({
  selector: 'counter',
  standalone: true,
  host: {
    '(click)': 'increment()',
  }
})
export class Counter {
  value = model(0);

  increment(): void {
    this.value.update(current => current + 1);
  }
}

@Component({
  template: `<counter [(value)]="count"/> The current count is: {{count()}}`,
})
class App {
  count = signal(0);
}
```

PR Close #54252
2024-02-07 16:36:09 +00:00
..
global build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
primitives/signals refactor(core): rework runtime implementation to simplify and fix issues (#54103) 2024-02-06 15:04:36 +00:00
reference-manifests build: add target to generate api manifest (#52472) 2023-11-02 11:00:59 -07:00
rxjs-interop build: configure cross-pkg resolution for api extraction (#52499) 2024-01-05 11:27:34 -08:00
schematics fix(migrations): error in standalone migration when non-array value is used as declarations in TestBed (#54122) 2024-01-29 15:40:05 +00:00
src feat(core): add support for model inputs (#54252) 2024-02-07 16:36:09 +00:00
test feat(core): add support for model inputs (#54252) 2024-02-07 16:36:09 +00:00
testing fix(core): update imports to be compatible with rxjs 6 (#54193) 2024-02-01 20:48:19 +00:00
BUILD.bazel build: configure cross-pkg resolution for api extraction (#52499) 2024-01-05 11:27:34 -08:00
index.ts refactor(core): made comment structure consistent in index.ts (#43684) 2021-10-21 18:39:58 +00:00
package.json build: update node.js engines version to be more explicate about v20 support (#52448) 2023-10-31 14:18:36 -07:00
PACKAGE.md docs: add package doc files (#26047) 2018-10-05 15:42:14 -07:00
public_api.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00