Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js Ember 1.12将路线注入服务_Ember.js_Modal Dialog_Ember Cli - Fatal编程技术网

Ember.js Ember 1.12将路线注入服务

Ember.js Ember 1.12将路线注入服务,ember.js,modal-dialog,ember-cli,Ember.js,Modal Dialog,Ember Cli,我正在尝试使用Ember cli创建一个服务来处理Ember 1.12中的模式对话框。也许服务不是实现这一点的最佳方式,但我想从应用程序中的任何地方访问它,并能够动态地将内容插入弹出窗口,因此这似乎是正确的方式 这是我的服务: import Ember from 'ember'; export default Ember.Service.extend({ route: Ember.inject.service('route'), open: function(content){

我正在尝试使用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方法时,出现以下错误:

未捕获错误:尝试注入未知注入: 服务:路线


我不确定我错过了什么。建议?

你应该看看余烬虫洞。它将允许您将模板的一部分定位到dom中其他地方的锚点。非常适合情态动词

其他信息: 正如@runspired指出的,你不能像现在这样注入路由器

如果您确实想注入路由器,可以使用Ember.inject.service'-routing'或通过application.inject'router'、'router:main'注入路由器;来自初始值设定项


但是,您无法访问渲染方法,这可能会被视为一种气味。

ember JS指南中的一本食谱是关于模态的。我记得使用这种技术实现modals,效果很好。我不确定你的例子。你的问题是路线不是服务。