В Ember Octane вы хотите использовать модификатор on
для настройки действий.
Строка
<form class="m-t" role="form" {{on "submit" this.changePassword}}>
эффективно устанавливает прослушиватель событий для события submit
этого элемента формы, который вызовет функцию changePassword
в классе компонента (поскольку this
в this.changePassword
означает, что функция является локальной для компонента)
Это вызывает это действие:
@action
changePassword(ev) {
ev.preventDefault();
this.args.changePassword({
oldPassword: this.oldPassword,
newPassword: this.newPassword,
confirmPassword: this.confirmPassword
});
}
Это действие changePassword
в свою очередь вызывает функцию changePassword
, которая был передан компоненту под именованным аргументом @changePassword
<Clients::ChangePasswordForm @chgpwd={{this.model}} @changePassword={{action 'changePassword'}} @errors={{this.errors}} />
Теперь в вашем Template Component JS
есть три других действия
changeOldPassword
changeNewPassword
changeConfirmPassword
, которые, насколько я могу судить по опубликованному вами коду, никогда не используются. Они выглядят как код, который вы использовали бы для настройки одностороннего связанного ввода, но вы используете встроенный Input
, который является встроенным компонентом ввода Ember (и использует двустороннее связывание между входным значением и @value
). Очень важное различие, которое стоит отметить, - это прописные буквы I
на Input
. Все компоненты угловых скобок используют заглавные буквы (каждое отдельное слово начинается с заглавной буквы).
Если бы вместо этого вы сделали что-то вроде:
<input type="password" class="form-control" placeholder="New Password" value={{this.newPassword}} {{on 'input' this.changeNewPassword}} required="true">
Тогда вы бы связали функцию this.changeNewPassword
с событием input
элемента <input>
(который является нативным *). 1057 * <input>
. С помощью действия changeNewPassword
, которое вы определили:
@action
changeNewPassword(ev) {
this.newPassword = ev.target.value;
}
Вы бы сохранили значение this.newPassword
в syn c со входом через одностороннюю привязку.