如何覆盖Ember-addons中的默认功能

sam*_*sam 3 javascript ember.js ember-cli ember-addon ember-cli-addons

在ember-cli文档中,它描述了通过自己覆盖app/component/[addon-name.js]来在宿主应用程序中桥接插件.但是,文档没有明确说明如何执行此操作.

通过试验和错误,我注意到通过在[主机应用程序]/app/component/[addon.js的名称]中创建一个组件文件,只需将插件复制/粘贴到那里就可以自定义插件.然而,这是一种可怕的方法,我想我可以简单地覆盖有问题的函数......并且在某些情况下调用this.super().functionName以保持过度乘坐简单和修剪.

但是,我不能让这个工作.有任何想法吗?

小智 7

可扩展性是插件具有树addon/app/树的原因.在app组件的树中,组件应该只是导入和导出,例如:

import XSelect from 'emberx-select/components/x-select';
export default XSelect;
Run Code Online (Sandbox Code Playgroud)

资料来源:https://github.com/thefrontside/emberx-select/blob/master/app/components/x-select.js

在这种情况下,您希望在该组件中创建[host app]/app/component/[name-of-addons-component.js]组件:

import XSelect from 'emberx-select/components/x-select';

export default XSelect.extend({
  //any overrides
});
Run Code Online (Sandbox Code Playgroud)