转换为父级时,嵌套视图未被销毁

时间:2012-08-29 20:35:36

标签: ember.js

我有一个带有嵌套路由的ember应用程序但是在转换回父路径时遇到子视图被破坏的问题。可能最容易看到这个小提琴http://jsfiddle.net/j32yT/2/ - 它首先显示一个“用户”列表;单击“创建”将导致用户创建“表单”,并使用“保存”按钮。在保存时,操作将在转换回其父级的路径上回激。

我希望转换离开时创建视图会被破坏,但似乎没有。添加一个函数来处理路由退出确实让我清理,但它似乎有点乱。我误解了路由是如何工作的吗?

更新

通过在我的用户路线中引入索引路线,我能够达到我想要的效果 - 这里有一个新的小提琴http://jsfiddle.net/AsJca/1/ - 我在正确的道路上吗?对这些东西不熟悉,所以还不明白什么可能构成最佳实践!

1 个答案:

答案 0 :(得分:0)

outletApplication ViewUsersView为{<1}},

<script id="application-template" type="text/x-handlebars">
    {{outlet}}
</script>

<script id="users-template" type="text/x-handlebars">
    {{#each user in controller}}
    {{user.name}}
    {{/each}}    
    <button {{action create_user}}>Create</button>
    {{outlet}}
</script>

当你这样做时:

router.get('applicationController').connectOutlet('users');

outlet的{​​{1}}被applicationView填充,但看到UsersView有自己的Users View。当你outletrouter.get('usersController').connectOutlet('createUser');这个插座充满了create new form。因此它与创建新按钮一起驻留在users-template中的插座旁边。

您可以将其更改为,

router.get('applicationController').connectOutlet('createUser');

如果你想替换它,但再想想你真正需要的东西,你就知道了。