在 Ember 应用程序中为 extend/inherit 控制器创建基础 class

Create base class for controller to extend/inherit in Ember application

我正在尝试为我的控制器创建一个基础 Class,这样我就可以避免代码重复。

这里的问题是,每当我尝试使用它时,它都会向我抛出错误。

"Assertion Failed: You attempted to define a {{link-to "inventory"}} but did not pass the parameters required for generating its dynamic segments. Could not find module controllers/base-inventory imported from frontend/controllers/inventory"

为了创建我的基本控制器,我正在使用 ember cli,这就是我所做的:

ember g controller base-inventory

然后

// base-inventory.js
const BaseInventory = Ember.Controller.extend({
   //my code...
});
export default BaseInventory;

在我想使用这个基地的控制器中class我做了以下

import BaseInventory from 'controllers/base-inventory';
// also tried import { BaseInventory } from 'controllers/base-inventory';
// and  export default new BaseInventory({});
export default BaseInventory.extend({
    //more code here...
});

有没有想过我做错了什么?

我不打算使用 mixins,因为一开始它似乎不是最好的选择。我不太确定 mixins 提供的共享内容。我不认为这会是一个问题,因为我试图在控制器内继承,但正如我所说,我不确定它是如何工作的。

如果无法按照我尝试的方式进行,我将编写一个 mixin。

两个文件都在相同的文件夹结构中,因此导入路径应该类似于 ./base-inventory

import BaseInventory from './base-inventory';