我有一个“过滤器”模型,用户可以通过点击页面来改变这个模型。
因此,当用户对模型进行更改时,我想转换到他当前所在的相同路线,因为URL根据模型的详细信息而有所不同(我已在路由上覆盖了“序列化”确保是这种情况。)
现在看来,Ember似乎无视我的请求,转而使用相同型号的相同路线。模型被更改,模板也会更改,但我希望URL也能反映对过滤器的更改。
我该怎么做?
编辑:
以下是我的ApplicationController中的代码
App.ApplicationController = Ember.Controller.extend
currentFilter: null
actions:
toggleRegion: (region_id) ->
region = this.store.getById('region', region_id)
filter = this.get('currentFilter')
# modify the filter
if filter.containsAtLeastOneCityOfRegion(region)
filter.disableRegion(region)
else
filter.enableRegion(region)
this.replaceRoute('listings', filter)
现在,当我处于“索引”路径时,这可以正常工作,但如果我已经在“列表”路径中,则模型会按预期进行修改,但路由替换不会发生,因此,我的URL没有使用正确的动态段更新(来自我的ListingsRoute的“序列化”方法)。
答案 0 :(得分:3)
如果你想要转换到(或替换我,就像我的情况一样)你所使用的相同路线,使用与当前模型具有相同身份的模型对象,Ember看起来像是无操作。
所以我需要做的是克隆对象,进行我需要进行的更改,然后进行转换。