Я хотел бы привязать входное значение к модели, используя геттеры и сеттеры. Таким образом, я могу предотвратить и/или манипулировать значением ввода при записи внутри него.
Например, я хочу, чтобы номера предотвращения находились внутри поля ввода. Итак, если написать «abc», все в порядке, тогда, если я начну писать число, ничего не должно произойти (с моделью и значением ввода). Проблема в том, что с помощью следующего кода я могу написать что-нибудь в поле ввода (но модель правильная). Это означает, что значение поля ввода на самом деле не представляет мою модель.
ПРИМЕЧАНИЕ. Причина, выходящая за рамки этих вопросов, заключается в том, что я хочу использовать свои модели для проверки форм, предотвращая, например, определенные символы. Я бы не хотел использовать реактивные формы, так как я хочу, чтобы мои проверки оставались внутри моих моделей, а не компонентов. Также обратите внимание, что в реальном сценарии у меня был бы класс UserModel с внутренним именем и другими полями с их проверками. .
@Component({
selector: 'my-app',
template: `
<div>
<h2><input type="text" [(ngModel)]="name"> {{name}}</h2>
</div>
`,
})
export class App {
_name:string = 'ss';
constructor() {
}
// In real scenario those 2 methods are in a separate class UserModel
get name() {
return this._name;
}
set name() {
if ((new RegExp(/^[a-zA-Z]*$/).test(val))) {
this._name = val;
}
}
}
this._name
содержит значениеabc
и пользователь вводит123
, но вы не хотите разрешать числа, что именно должно произойти? - person Günter Zöchbauer   schedule 17.03.2017