【问题标题】:Getting error after migrating to Ember octane迁移到 Ember 辛烷后出现错误
【发布时间】:2020-03-09 06:31:51
【问题描述】:

我正在使用 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 ...
  }
}

【问题讨论】:

    标签: ember.js ember-octane


    【解决方案1】:

    如错误中所述,on 修饰符应接收有效函数以执行。正如guides中提到的,

    如果您将{{action}} 助手添加到任何 HTML DOM 元素,当用户单击该元素时,命名事件将被发送到模板的相应组件或控制器。

    这适用于on 修饰符或模板中使用的任何值。您可以将路由视为我们为相应页面获取数据的部分。任何其他支持属性或计算都必须在要在模板中使用的控制器或组件中定义。

    因此,将您的 login 操作移至 Controller 将解决此问题。此外,您还需要将email 移至控制器,否则您将无法看到对其进行的更新正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-08
      • 2011-03-16
      • 1970-01-01
      • 1970-01-01
      • 2020-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多