【问题标题】:Ember.js : outlet does not replace the view after operation completesEmber.js:操作完成后outlet不会替换视图
【发布时间】:2013-02-21 07:02:08
【问题描述】:

这是我的应用程序结构。 http://jsfiddle.net/cc7fC/

  • 联系人
  • 联系人/新
  • contact/ //联系方式
  • 联系方式//edit

我正在尝试将“new”、“contact”和“contact.edit”加载到同一个 {{outlet}} 中。在我完成编辑并点击保存后。在我手动单击联系人之前,视图不会刷新。

...
submit: function(post) {
      post.get('store').commit();
      if (post.didCreate) {
        //debugger;
        return this.transitionTo('contact');
      }
...

编辑:修正错别字和格式

【问题讨论】:

    标签: jquery ember.js ember-data


    【解决方案1】:

    这里有几个问题。

    您不能将contactcontact.edit 放在同一个{{outlet}} 中,因为contact.edit 嵌套在contact 中。此外,您不能从contact.edit 转换到contact,因为contact.edit 嵌套在contact 中。

    但是,您可以将contact.indexcontact.edit 放在同一个outlet 中,您可以在它们之间进行转换。所以你需要用contact.index模板替换contact模板,并为App.ContactIndexRoute定义路由行为。

    第二个问题是当您转换到 model 路由时,例如 contact 现在是 contact.index,您需要传递您希望它转换到的模型。所以过渡应该是这样的:

    this.transitionTo('contact.index', contact);
    

    还有一件事,我不确定你为什么要使用:

    if (post.didCreate) {
    }
    

    我认为这行不通... didCreate 是您需要聆听的事件。 查看this answer

    最后是working fiddle :)

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-13
    • 2020-11-28
    • 1970-01-01
    • 1970-01-01
    • 2013-02-12
    相关资源
    最近更新 更多