ember.js 如何在整个应用程序中注入组件
How to inject components in whole application in ember.js
我正在开发一个 ember-cli 项目,我在其中创建了许多可重用的组件。我希望每个模板(hbs)文件中都有这些组件。我可以在每个模板中执行 {{component1}} {{component2}} {{component3}} 但这对我来说看起来是多余的,因为我必须在每个模板中编写所有这些行。我只想知道我是否可以在所有模板中注入组件,就像将服务注入路由、组件等任何我需要的地方一样。
下面是我如何注入服务的示例
/intializers/session-object.js
export function intialize (application){
application.inject('route','session','service:session');
application.inject('controller','session','service:session');
application.inject('component','session','service:session');
application.inject('adapter','session','service:session');
});
我尝试将组件注入到与上述类似的模板中。
/intializers/session-object.js
export function intialize (application){
application.inject('template','my-component','component:my-component');
});
不出所料,上面的代码失败了。 ember 指南中没有提到我可以在模板中注入组件。但是,想知道以前是否有人这样做过。
我相信 ember 不允许我们将组件注入模板可能有充分的理由。
任何帮助解释无法在 ember.js 中实施的原因的帮助都很棒,或者提供解决方案(如果可以实施)也很棒。提前谢谢大家。
注入模板没有意义。
您可以创建一个部分模板并将通用组件放在那里然后使用该部分。
-common.hbs
{{nav-bar}}
{{error-messages}}
another.hbs
{{partial 'path-to-common-template'}}
我正在开发一个 ember-cli 项目,我在其中创建了许多可重用的组件。我希望每个模板(hbs)文件中都有这些组件。我可以在每个模板中执行 {{component1}} {{component2}} {{component3}} 但这对我来说看起来是多余的,因为我必须在每个模板中编写所有这些行。我只想知道我是否可以在所有模板中注入组件,就像将服务注入路由、组件等任何我需要的地方一样。
下面是我如何注入服务的示例
/intializers/session-object.js
export function intialize (application){
application.inject('route','session','service:session');
application.inject('controller','session','service:session');
application.inject('component','session','service:session');
application.inject('adapter','session','service:session');
});
我尝试将组件注入到与上述类似的模板中。
/intializers/session-object.js
export function intialize (application){
application.inject('template','my-component','component:my-component');
});
不出所料,上面的代码失败了。 ember 指南中没有提到我可以在模板中注入组件。但是,想知道以前是否有人这样做过。
我相信 ember 不允许我们将组件注入模板可能有充分的理由。
任何帮助解释无法在 ember.js 中实施的原因的帮助都很棒,或者提供解决方案(如果可以实施)也很棒。提前谢谢大家。
注入模板没有意义。
您可以创建一个部分模板并将通用组件放在那里然后使用该部分。
-common.hbs
{{nav-bar}}
{{error-messages}}
another.hbs
{{partial 'path-to-common-template'}}