首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >余烬ApplicationController注入不工作

余烬ApplicationController注入不工作
EN

Stack Overflow用户
提问于 2016-06-08 19:48:17
回答 1查看 300关注 0票数 0

我使用的是Ember CLI 2.5.0。我有下面两个控制器。我希望页面控制器在ApplicationController中调用一个方法或一个操作(这两种操作都可以)。

但是,我仍然得到错误"ReferenceError: application是未定义的“。

我试过使用旧的“需要”API。我尝试了更老的"controllerFor“方法。我试着直接访问应用程序,然后深入到控制器。一开始,我遇到了一些问题,在一个承诺中调用它并试图使用" this“关键字,但是通过声明一个本地范围的var来解决这个问题。似乎什么都没起作用。我觉得我错过了一些简单的东西,因为前面提到的所有方法似乎都适用于其他方法。

app/controllers/application.js:中的

代码语言:javascript
复制
import Ember from 'ember';

export default Ember.Controller.extend({
    actions: {
        showModal: function(name, model) {
            this.displayModal(name, model);
        },
        removeModal: function() {
            this.disconnectOutlet({
                outlet: 'modal',
                parentView: 'application'
            });
        }
    },
    displayModal: function(name, model) {
        console.log(model);
        this.render(name, {
            into: 'application',
            outlet: 'modal',
            model: model
        });
    }
});

应用程序/控制器/页面中的:

代码语言:javascript
复制
import Ember from 'ember';

export default Ember.Controller.extend({
    application: Ember.inject.controller(),
    actions: {
        editPageFields: function(page) {
            page.get('fieldValues').then(function(){
                application.displayModal('page-edit-fields-modal', page);
            });
        }
    }    
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-08 19:56:49

您需要使用this.get('application')访问应用程序属性。

代码语言:javascript
复制
page.get('fieldValues').then(() => {
   this.get('application').displayModal('page-edit-fields-modal', page);
});

请注意"fat箭头“,它传递匿名函数中的作用域,因此您可以使用父作用域中的"this”。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37711629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档