5

您将如何在 ember 中实现关注点。例如,发送邀请功能:

  • 用户有 5 个邀请(涉及获取数据的存储)
  • 可从任何应用程序状态获得邀请
  • 它出现在模态
  • 它可以不止一个 - 因此 {{outlet modal}} 也不起作用
  • 用户可以输入电子邮件并发送邀请(可用邀请数减少)

当前模式实现 - 因此无法将控制器分配给视图......

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

组件方法对我不起作用:内容(模型)应该由路由设置,我不知道组件中的事件对数据获取有用。

嵌套路线也不起作用 - 需要改变很多。

我找不到任何可行的方法,请帮忙。

提前致谢。

4

1 回答 1

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');
    }
  }
});
于 2013-11-06T15:15:05.827 回答