我需要在不使用服务器的情况下使用本部分的骨干,只需在客户端。 需要:当用户点击按钮时,必须在第三方(不同的域)中发出请求。我必须抓住答案并向用户展示。问题是我如何将我的抓取数据传递给查看 OBS:我在轨道上没有这个型号,它只是假的(假装) 我已经尝试过了:
class App.Routers.Datas extends Backbone.Router
routes:
'': 'show'
initialize: ->
@collection = new App.Collections.Data()
@collection.fetch({reset: true})
show: ->
view = new App.Views.DatasShow(collection: @collection)
$('#container').html(view.render().el)
即时尝试获取数据
class App.Collections.Datas extends Backbone.Collection
model: App.Models.Data
fetch: -> # override method
$.ajax '/url', #third-party request
dataType: 'jsonp',
success: (res, status, xhr) -> # the problem is here, how to pass data to a collection?
@collection = res.data
return @collection
error: (xhr, status, err) ->
查看
class App.Views.DatasShow extends Backbone.View
template: JST['datas/show']
render: ->
$(@el).html(@template(fetched: @collection))
this
show.jst.eco
<%= @fetched.length %>
答案 0 :(得分:1)
您无需覆盖 fetch 方法;你只需要定义 url ,你还需要覆盖 parse 方法,该方法在获取后自动调用以解析返回的响应并将其分配给集合{{3 }}
class App.Collections.Datas extends Backbone.Collection
model: App.Models.Data
initialize: ->
@url = 'Enter URL here' # The fetch method will use this url by default
parse:(response, options)->
super(response.data, options)
<强> PS 强>
单词数据是数据
的复数形式