如何在骨干网中提出第三方请求

时间:2013-11-29 22:38:16

标签: ruby-on-rails backbone.js coffeescript

我需要在不使用服务器的情况下使用本部分的骨干,只需在客户端。 需要:当用户点击按钮时,必须在第三方(不同的域)中发出请求。我必须抓住答案并向用户展示。问题是我如何将我的抓取数据传递给查看 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 %>

1 个答案:

答案 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

单词数据数据

的复数形式