Dynamic 如何使用路由器处理动态内容?

Dynamic 如何使用路由器处理动态内容?,dynamic,view,ember.js,router,Dynamic,View,Ember.js,Router,我正在通过Ember.js开发一个应用程序,应用程序维护类别,在类别列表视图中,当用户单击create按钮时,我们将动态显示新的Category表单。在使用Ember的路由器之前,我们使用以下机制: 视图: 模板: <div class="well well-small"> <a class="btn btn-primary" href="#" {{action "showNewCategory"}}>Create</a> </div> {

我正在通过Ember.js开发一个应用程序,应用程序维护类别,在类别列表视图中,当用户单击create按钮时,我们将动态显示新的Category表单。在使用Ember的路由器之前,我们使用以下机制:

视图:

模板:

<div class="well well-small">
   <a class="btn  btn-primary" href="#" {{action "showNewCategory"}}>Create</a>
</div>
{{#if view.isNewVisible}}
  {{view LCF.NewCategoryView}}
{{/if}}
<div class="well well-small">
    <a class="btn  btn-primary" href="#" {{action "showNewCategory"}}>Create</a>
</div>
{{outlet}}
模板:

<div class="well well-small">
   <a class="btn  btn-primary" href="#" {{action "showNewCategory"}}>Create</a>
</div>
{{#if view.isNewVisible}}
  {{view LCF.NewCategoryView}}
{{/if}}
<div class="well well-small">
    <a class="btn  btn-primary" href="#" {{action "showNewCategory"}}>Create</a>
</div>
{{outlet}}

{{outlet}}
它起作用了

我的问题是:

  • 这是处理动态视图的正确方法吗?我们是否需要为页面中的每个浮动层创建状态/控制器
  • 即使应用程序仍然显示类别,URL也将更改
  • 模板中只有一个{outlet},如果要显示多个动态视图,如何处理
      • 对我来说这看起来很不错。对于状态创建和控制器。。。这里没有是/否答案。通常我会说,您根据上下文逻辑创建一个控制器,并在需要处理新的应用程序状态时创建一个路由。在您的示例中,您做得很好,包括类别(状态为具有所有类别的概述)、显示(显示一个特定类别)

      • 这里有什么问题?对不起,我不明白你想知道什么

      • 这里的答案很简单,如果您有几个动态视图要显示在页面中,您可以使用多个{{outlets}},使用命名的outlets。见:


      不客气。如果您能在第二点中澄清您想要什么,我将尝试回答:)对于问题2:传统上,在rails应用程序中,我们将使用链接显示所有类别,然后在同一页面中,我们应该使用新的类别表单,在这种情况下,url不会更改。但是当我们使用ember的路由器时,在进入newCategory状态后,url将更改为(这用于rails中的新页面)。这看起来很难看。