如何覆盖 Ember-addons 中的默认功能
How to override default functionality in Ember-addons
在 ember-cli 文档中,它描述了通过自己覆盖 app/component/[addon-name.js] 在主机应用程序中桥接插件。但是,文档没有明确说明 如何 执行此操作。
通过反复试验,我注意到通过在您的 [host app]/app/component/[name of addon.js] 中创建组件文件并简单地 copy/paste 插件那里的代码提供了一个自定义插件的场所。然而,这是一个糟糕的方法,我想我可以简单地覆盖有问题的功能......在某些情况下调用 this.super().functionName 以保持覆盖简单和 trim.
但是,我无法让它工作。有任何想法吗?
可扩展性是插件同时具有 addon/
和 app/
树的原因。在组件的 app
树中,组件应该只是一个导入和导出,例如:
import XSelect from 'emberx-select/components/x-select';
export default XSelect;
来源: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
});
在 ember-cli 文档中,它描述了通过自己覆盖 app/component/[addon-name.js] 在主机应用程序中桥接插件。但是,文档没有明确说明 如何 执行此操作。
通过反复试验,我注意到通过在您的 [host app]/app/component/[name of addon.js] 中创建组件文件并简单地 copy/paste 插件那里的代码提供了一个自定义插件的场所。然而,这是一个糟糕的方法,我想我可以简单地覆盖有问题的功能......在某些情况下调用 this.super().functionName 以保持覆盖简单和 trim.
但是,我无法让它工作。有任何想法吗?
可扩展性是插件同时具有 addon/
和 app/
树的原因。在组件的 app
树中,组件应该只是一个导入和导出,例如:
import XSelect from 'emberx-select/components/x-select';
export default XSelect;
来源: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
});