Получение ошибки после перехода на октябрь Ember - PullRequest
0 голосов
/ 09 марта 2020

Я использую Ember 3.16.3 и получаю эту ошибку в следующем коде:

Ошибка: утверждение не выполнено: необходимо передать функцию в качестве второго аргумента модификатору on

//login.hbs

 <form {{on "submit" this.login}}>
       <Input type="email" placeholder="email" @value={{this.email}} />
      <button type="submit">login</button>
 </form>

.

//login.js

import Route from '@ember/routing/route';

import { tracked } from '@glimmer/tracking';
import { action } from '@ember/object';

export default class LoginRoute extends Route {

   @tracked email = '';

   @action
   login(event) {
     event.preventDefault();

     // do some operations ...
  }
}

1 Ответ

1 голос
/ 09 марта 2020

Как указано в ошибке, модификатор on должен получить допустимую функцию для выполнения. Как упомянуто в руководствах ,

Если вы добавите помощник {{action}} к любому элементу HTML DOM, когда пользователь щелкает элемент, указанное событие будет быть отправлено соответствующему компоненту или контроллеру шаблона.

Это справедливо для модификатора on или любых значений, которые используются в шаблоне. Вы можете думать о маршрутах, чтобы быть частью, где мы выбираем данные для соответствующей страницы. Любое другое вспомогательное свойство или вычисление должно быть определено внутри контроллера или компонента, который будет использоваться в шаблоне.

Следовательно, перемещение вашего действия login в Controller решит эту проблему.

...