[英]Ember 1.12 Inject Route into Service
我正在嘗試創建一個服務以使用Ember-cli在Ember 1.12中處理模式對話框。 也許服務不是解決此問題的最佳方法,但是我想從應用程序中的任何位置訪問它,並能夠將內容動態地插入到彈出窗口中,因此這似乎是正確的方法。
這是我的服務:
import Ember from 'ember';
export default Ember.Service.extend({
route: Ember.inject.service('route'),
open: function(content){
console.log('open popup', content);
this.get('route').render('popup-box', { //popup-box is a component
into: 'application',
outlet: 'popup'
});
},
close: function(){
//TODO
}
});
當我調用open方法時,出現此錯誤:
未捕獲的錯誤:嘗試注入未知的注入:
service:route
我不確定我缺少什么。 有什么建議嗎?
您應該查看ember-wormhole, https://github.com/yapplabs/ember-wormhole 。 它將使您可以將模板的一部分定位到dom中其他位置的錨點。 非常適合模態!
AS @runspired指出,您不能像擁有路由器那樣注入路由器。
如果確實要注入路由器,則可以使用Ember.inject.service('-routing')
或通過application.inject('<myTarget>', 'router', 'router:main');
從初始化程序。
但是,您無權使用render方法,這可能被認為是一種氣味。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.