Угасает реализация

Как бы вы реализовали проблемы в Ember. Например, отправить функцию приглашения:

  • У пользователя есть 5 приглашений (хранилище участвует в извлечении данных)
  • приглашение доступно из любого состояния приложения
  • это появляется в модальном
  • это может быть больше чем один - таким образом {{outlet modal}} также не работает
  • пользователь может ввести адрес электронной почты и отправить приглашение (количество доступных приглашений уменьшилось)

текущая модальная реализация - таким образом не может назначить контроллер представлению...

openModal: function(modal) {
  var modalView = this.container.lookup(modal);
  modalView.appendTo(MS.rootElement);
}

Компонентный подход не работает как для меня: контент (модель) должен быть настроен с помощью перенаправления, я не знаю событие в компоненте, которое может быть полезно для извлечения данных.

Вложенные маршруты также не работают - многое изменить.

Я не могу найти какой-либо рабочий подход для этого, пожалуйста, помогите.

Заранее спасибо.

1 ответ

Решение

Вы можете назначить контроллер для представления. Вот простой пример, где я могу внедрить представление из любой точки на странице, назначить ему контроллер, и когда я снова открываю представление, у него будет тот же контроллер (если это был ожидаемый результат). Если это не поможет вам двигаться в правильном направлении, дайте мне знать.

Вы можете использовать всплывающее окно, чтобы позволить его вызывать из любой точки приложения.

http://emberjs.jsbin.com/uhoFiQO/4/edit

App.InviteView = Ember.View.extend({
  templateName: 'invite'

});

App.InviteController = Ember.Controller.extend({
  actions: {
    pretendToSend: function(){
     var invites =  this.get('invites'); 
      this.set('invites', invites-1);
    }
  }
});

App.ApplicationRoute = Ember.Route.extend({
  setupController: function(controller, model){
    var inviteController = this.controllerFor('invite');
    inviteController.set('invites', 5);
  },
  actions:{
    popInvite: function(){
      var inviteController = this.controllerFor('invite');
      // create/insert my view
      var iv = App.InviteView.create({controller: inviteController});
      iv.appendTo('body');
    }
  }
});
Другие вопросы по тегам