我的 ember 2.18 应用程序中有一个控制器,我想让它监听myEventName
应用程序某处触发的某些事件,以更改模型属性。
根据此版本的 API 文档,捕获已发出事件的方法如下:
import Evented from '@ember/object/evented';
import Controller from '@ember/controller';
// extend some object, like a Controller
const myExtendedObject = Controller.extend(Evented, {
// stuff ...
});
myExtendedObject.on('myEventName', function (args) {
console.log("catch importDone ok", args);
});
export default myExtendedObject;
该代码与 ember build dev 可以很好地编译,但在浏览器的 JS 控制台中,我收到以下错误消息:
错误:断言失败:在没有有效事件名称的情况下调用 error.js:40
我尝试重命名事件,但找不到事件名称错误的原因。我还尝试为该on
方法设置三个参数,但它仍然与事件名称有关。我错过了什么?
编辑:
我做了一个 Ember twiddle,显示事件的范围是组件。我想从任何地方抓住它们;就像从服务触发事件并在路由中捕获它一样。
https://ember-twiddle.com/ce22cc0a542e8e0997a1ad57a4a9688c?fullScreen=true