过渡到相同模型的相同路线

els*_*udo 6 ember.js ember-router

我有一个"过滤器"模型,用户可以通过单击页面来更改此模型.

因此,当用户对模型进行更改时,我想转换到他当前所在的相同路径,因为URL根据模型的详细信息而有所不同(我已在路由上覆盖"序列化"以确保此是这样的).

现在的情况是,Ember似乎无视我的请求,转而使用相同型号的相同路线.模型被更改,模板也会更改,但我希望URL也能反映对Filter的更改.

我怎样才能做到这一点?

编辑:

这是我的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)
Run Code Online (Sandbox Code Playgroud)

现在,当我处于"索引"路径时,这可以正常工作,但如果我已经在"列表"路径中,模型将按预期修改,但路由替换不会发生,因此,我的URL不会更新使用正确的动态段(来自我的ListingsRoute的"序列化"方法).

els*_*udo 3

如果你想转换到(或替换,就像我的情况一样)到你所在的同一路线,并且使用与当前模型具有相同身份的模型对象,看起来 Ember 会执行无操作。

所以我需要做的是克隆对象,进行所需的更改,然后进行转换。