Ember.js如何扩展ember-cli-addon组件

时间:2017-01-19 19:07:11

标签: ember.js ember-cli stripe-connect

我在我的Ember应用程序中使用Stripe,并按照此处的说明进行了设置: https://github.com/sweettooth/ember-cli-stripe

因为我的应用程序现在正好,通过此插件安装的ember-checkout组件位于

myappname / node_modules /余烬-CLI-条纹/应用/组件/条纹结账

现在,我想创建一个新组件" my-stripe-checkout",并让它扩展默认的ember-cli-stripe组件。

我试过了:

import StripeCheckoutComponent from '../node_modules/ember-cli-stripe/app/components/stripe-checkout';
import StripeCheckoutComponent from 'ember-cli-stripe/app/components/stripe-checkout';
import StripeCheckoutComponent from 'app/components/stripe-checkout';

在我通过Ember g生成的my-stripe-checkout组件中,但无济于事。

我总是得到这种模式的错误:

Could not find module `app/components/stripe-checkout` imported from `myappname/components/my-stripe-checkout`

根据这个问题: How to extend an ember-cli addon?

我试过

import StripeCheckoutComponent from 'ember-cli-stripe/components/stripe-checkout';

但同样的错误。

我也试过了两个:

export default Ember.StripeCheckoutComponent.extend({ })

export default StripeCheckoutComponent.extend({})

每次导入的迭代,但似乎没有任何效果。如何扩展ember-cli-addon组件?

1 个答案:

答案 0 :(得分:2)

嗯,您需要了解插件的addon目录是否与您的应用结构直接合并。最佳做法是将所有代码保留在ember-cli-stripe目录中,但是components并未执行此操作。所以从import StripeCheckoutComponent from './stripe-checkout'; 目录里面你基本上可以做到

import StripeCheckoutComponent from 'YourAppName/components/stripe-checkout';

addon

如果组件位于插件的import StripeCheckoutComponent from 'ember-cli-stripe/components/stripe-checkout'; 目录中,则正确的方法是:

{{1}}