【发布时间】:2014-01-17 10:40:46
【问题描述】:
我有一个“过滤器”模型,用户可以通过点击页面来改变这个模型。
因此,当用户对模型进行更改时,我想转换到他当前所在的同一条路线,因为 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 的“序列化”方法)。
【问题讨论】:
-
请添加您的代码。
-
您是否使用 transitionToRoute(emberjs.com/api/classes/…) 传递新模型?
-
从我的代码中可以看出,我现在使用的是“replaceRoute”,但传递的是相同(但已修改)的模型对象。
标签: ember.js ember-router