model
model объявляет доступный для записи сигнал, который предоставляется в содержащей его директиве как пара входного и выходного параметров.
Имя входного параметра берётся либо из члена класса, либо из параметра alias. Имя выходного параметра создаётся добавлением Change к имени входного параметра.
API
function model<T>(); function model<T>(initialValue, opts?); function model.required<T>(opts?);
function model<T>(): ModelSignal<T | undefined>;
Инициализирует модель типа T с начальным значением undefined. Angular неявно использует undefined в качестве начального значения.
ModelSignal<T | undefined>
function model<T>(initialValue: T, opts?: ModelOptions | undefined): ModelSignal<T>;
Инициализирует модель типа T с указанным начальным значением.
T
ModelSignal<T>
function model.required<T>(opts?: ModelOptions | undefined): ModelSignal<T>;
Инициализирует обязательную модель.
Пользователи вашей директивы или компонента должны привязать входную сторону модели. Если значение не задано, во время компиляции будет выдана ошибка.
ModelSignal<T>
Примечания по использованию
Чтобы использовать model(), импортируйте функцию из @angular/core.
import {model} from '@angular/core';
В компоненте добавьте новый член класса и инициализируйте его вызовом model или model.required.
@Directive({
...
})
export class MyDir {
firstName = model<string>(); // ModelSignal<string|undefined>
lastName = model.required<string>(); // ModelSignal<string>
age = model(0); // ModelSignal<number>
}
В шаблоне компонента можно отобразить значение model, вызвав сигнал.
<span>{{firstName()}}</span>
Обновление model эквивалентно обновлению доступного для записи сигнала.
updateName(newFirstName: string): void {
this.firstName.set(newFirstName);
}
Super-powered by Google ©2010–2025.
Code licensed under an MIT-style License. Documentation licensed under CC BY 4.0.
https://angular.dev/api/core/model