为控制器创建基类以在Ember应用程序中扩展/继承

时间:2016-12-28 21:44:39

标签: javascript ember.js ember-cli

我正在尝试为我的控制器创建一个基类,所以我可以避免重复代码。

这里的问题是,每当我尝试使用它时,它都会给我带来错误。

  

“断言失败:您尝试定义{{link-to "inventory"}}但未传递生成其动态细分所需的参数。无法找到从controllers/base-inventory导入的模块frontend/controllers/inventory

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

ember g controller base-inventory

然后

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

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

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提供的共享内容。我不认为这是一个问题,因为我试图在控制器内继承,但正如我所说,我不确定它是如何工作的。

如果我不能按照我想要的方式行事,我会写一个混音。

1 个答案:

答案 0 :(得分:5)

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

import BaseInventory from './base-inventory';