如何保留最新的搜索参数,例如:lat
and lng
oradditional
并在分页更改时使用当前页面参数获取它们?现在,当页面更改时,其他参数都消失了。
在某些视图中使用新数据参数获取集合:
@options.posts.fetch({
data: { page: 1, lat: x.latitude, lng: y.longitude, additional: eg.test }
processData: true
})
分页集合:
define [
'backbone'
'myapp'
'models/post'
# 'collections/paginated'
],
( Backbone, App, Post) ->
class App.Collections.Posts extends Backbone.Collection
model: Post
url: "/posts"
initialize: ->
fetch: (options = {}) ->
@trigger "fetching"
self = this
success = options.success
options.success = (resp) ->
self.trigger "fetched"
success self, resp if success
Backbone.Collection::fetch.call this, options
parse: (resp) ->
@current_page = resp.current_page
@total_pages = resp.total_pages
resp.items
编辑:
正如您在回答中建议的那样,我将变量存储在集合中并覆盖 url 函数:
url: ->
"/posts?" + $.param(
additional: @additional
lat: @lat
lng: @lng
)
或在视图中:
@options.posts.url = "/posts?" + $.param({ additional: eg.test, lat: x.latitude, lng: y.longitude })
@options.posts.fetch({reset: true})
我不知道这种模式是否正确,但这种解决方案是有效的。