1
我想讓狀態進入我的脊柱應用程序。點擊後,一個項目被添加到列表中。然後創建一個url並導航到,然後列表get被渲染。但是,當我使用瀏覽器「返回」功能時,列表不會變回以前的狀態。如何讓這個工作?Spinejs路由不保存狀態
這是相關的代碼,我忽略了什麼似乎不相關,但如果需要更多,我會提供它。
class App extends Spine.Controller
constructor: ->
super
@products = new Products
@filters = new Filters
Filter.bind 'filterAdded', => @navigateAfterFilterChange()
Filter.bind 'filterRemoved', => @navigateAfterFilterChange()
Spine.Route.setup(history: false)
renderAll: ->
@products.render()
@filters.render()
navigateAfterFilterChange: ->
Spine.Route.navigate(encodeURIComponent(JSON.stringify(_.map(Filter.active_filters, (filter) -> { t: filters.type, v: filters.value }))))
class Filter extends Spine.Model
listen: => #This is used to make the right list item listen to a click event
$("'a[data-cid=\"#{ @id }\"]'").one 'click', @triggerFilter
triggerFilter: (e) =>
e.preventDefault()
filter = Filter.find($(e.currentTarget).attr('data-cid'))
if @active
@active = false
Filter.active_filters = _.reject Filter.active_filters, (x) -> (x.type is filter.type and x.value is filter.value)
@save()
Filter.trigger 'filterRemoved', @
else
@active = true
Filter.active_filters.push filter
@save()
Filter.trigger 'filterAdded', @
class Filters extends Spine.Controller
constructor: ->
super
@utils = new GeneralScripts
@createFilters()
@listenForTypeActivation()
@routes
"": (params) ->
@render()
"*glob": (params) ->
@render()