2016-06-08 5 views
0

Я использую Ember CLI 2.5.0. У меня есть два контроллера. Я хотел бы, чтобы контроллер страниц вызывал метод или действие (либо будет делать) в ApplicationController.Ember ApplicationController не работает

Однако, я получаю сообщение об ошибке «ReferenceError: приложение не определено»

Я попытался с помощью старых «потребностей» API. Я попробовал еще более старый метод «controllerFor». Я попытался напрямую обратиться к приложению и перейти к контроллеру. Первоначально у меня возникали проблемы, вызывающие это из обещания и пытающегося использовать «это» ключевое слово, но обойти это, объявив локально scoped var. Кажется, что ничего не работает. Я чувствую, что мне не хватает чего-то простого, поскольку все вышеупомянутые методы, похоже, работали для других.

В приложение/контроллеры/application.js:

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 
     }); 
    } 
}); 

В приложение/контроллеры/pages.js:

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); 
      }); 
     } 
    }  
}); 

ответ

2

Вы должны получить доступ к свойству приложения с this.get('application').

page.get('fieldValues').then(() => { 
    this.get('application').displayModal('page-edit-fields-modal', page); 
}); 

Обратите внимание на «жир стрелок», которая проходит объем внутри вашей анонимной функции, так что вы можете использовать «это» из родительской области.

+0

Я так хочу, чтобы я мог отправить вам виртуальное пиво. Спасибо. – happygaijin

Смежные вопросы