Ember.js:出口在操作完成后不替换视图

时间:2013-02-21 07:02:09

标签: jquery ember.js ember-data

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

  • 联系人
  • 触点/新
  • 接触/< ID> //接触
  • 接触/< ID> /编辑

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

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

编辑:修正错别字&格式

1 个答案:

答案 0 :(得分:3)

这里有几个问题。

您不能将contactcontact.edit放在同一{{outlet}}中,因为contact.edit嵌套在contact内。此外,您无法从contact.edit过渡到contact,因为contact.edit嵌套在contact内。

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

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

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

还有一件事,我不确定你使用的原因:

if (post.didCreate) {
}

我认为这不起作用... didCreate是一个你需要倾听的事件。 查看this answer

最后是working fiddle:)