Routing 在不重新加载的情况下更新动态段

Routing 在不重新加载的情况下更新动态段,routing,ember.js,Routing,Ember.js,我想创建包含两条路线的“搜索”页面: /索引-默认路线 /:time/:filter搜索-在用户输入一些参数后,手动序列化/反序列化段filter 目前,我正在使用转换到,在这些路由之间转换,但是我想停止这样做,因为它会重新呈现(重新插入?)整个应用程序 我想做的是:更改url(将表单/更改为/:time/:filter,或者只更新:time和:filter段),但保留应用程序的当前状态 这样可能吗 Ember.js版本:1.0.0-PRE.2 jsIDLE:您正在寻找的技术是嵌套插座。模板可以

我想创建包含两条路线的“搜索”页面:

/
索引-默认路线
/:time/:filter
搜索-在用户输入一些参数后,手动序列化/反序列化段
filter

目前,我正在使用
转换到
,在这些路由之间转换,但是我想停止这样做,因为它会重新呈现(重新插入?)整个应用程序

我想做的是:更改url(将表单
/
更改为
/:time/:filter
,或者只更新
:time
:filter
段),但保留应用程序的当前状态

这样可能吗

Ember.js版本:1.0.0-PRE.2

jsIDLE:

您正在寻找的技术是嵌套插座。模板可以有任意数量的插座,插入插座的模板也可以有自己的插座。在您的示例中,您总是在进入新状态时连接应用程序模板出口。这就是导致整个应用程序重新绘制的原因

实际上,您希望HomeView的模板也有一个出口。您将使用HomeView实例填充应用程序模板中的插座,HomeView现在有自己的插座。执行搜索(并进入
搜索
状态)时,您将把HomeView模板内的插座与另一个显示结果的视图连接起来

我更新了你的小提琴以反映这一点:

您的
data template name=“app page home”
现在有一个
{{outlet}
部分,我添加了一个
data template name=“app results”
以及一个匹配的视图和控制器

search
状态中,您将看到我现在再次调用
router.get('homeController').connectOutlet('results')
,而不是
router.get('applicationController').connectOutlet('home')


这将避免重画已经可见的搜索控件,并为搜索结果插入一个新区域。

谢谢,这正是我要找的:)