【发布时间】:2022-11-02 09:48:07
【问题描述】:
我有很大的 emberjs 应用程序,我需要开始更多地使用 ember 服务。 所以我在我的控制器中有一个方法,我希望它在所有模式和注入服务的组件中都可以作为服务使用。
但它不起作用,并且没有错误......这是一个很好的方法吗?为什么它不工作?
所以我在控制器中的方法是:
openModalPrices () {
//method in controller
},
该服务有另一种方法:
openModalPricesFromService () {
//method in service
},
在我的控制器中的初始化中,我的绑定是这样的:
init: function() {
this._super(...arguments);
this.get('priceService').openModalPricesFromService(this.openModalPrices.bind(this));
}
【问题讨论】:
-
你的ember版本是什么? “不工作”是什么意思?您到底期望发生什么,会发生什么,为什么您认为这是错误的?通常,您不会在 Controller 上创建随处可用的方法,而是使用服务反而.因此,将功能移至服务。
-
问题在于,当不在控制器的路由上时,不应调用控制器上的方法。但是服务是全球性的,可以随时随地调用其上的方法。真正的问题是,为什么要将方法保留在控制器中但从服务中调用它?您要解决的真正问题是什么?
标签: javascript ember.js service bind