【发布时间】:2012-06-13 23:45:29
【问题描述】:
我正在尝试实现一些看起来对 Backbone 来说应该相对微不足道的东西,但它不起作用。我正在根据用户的操作用系列填充图表。代码如下。
假设用户快速添加了两个系列。或者一条路线同时触发两个系列。常量是在第一个返回之前触发第二次获取。在这种情况下,“fetching”被记录了两次,而“fetched”只被记录了一次。这是预期的行为吗?如果不是,我应该如何构建我的代码以使其正常工作?
# Series model
class Series extends Backbone.Model
initialize: (options) ->
_.bindAll @
@endpoint = state?.getEndpoint()
url: ->
[localApiUrl, 'metrics', @endpoint, @.get('id')].join('/')
class SeriesCollection extends Backbone.Collection
model: Series,
initialize: ->
_.bindAll @
@bind 'add', @fetched
fetchData: ( opts ) =>
console.log('fetching')
@series = new Series({ id: opts.id })
@series.fetch
success: (model, response) =>
@.add({
id: @series.get('id')
name: @series.get('id')
data : @series.get('ts')
marker:
radius: 2
turboThreshold: 10000
dataGrouping:
enabled: false
})
fetched: () ->
console.log('fetched', @)
【问题讨论】:
-
我可能是错的,但发布实际的 javascript 可能会得到更好的响应。我可能应该学习咖啡脚本,它不会那么难,但 atm 我看不懂没有紧张.. 8)
-
对不起,以前一样。我强烈鼓励你跳,特别是如果你在做 Backbone 的东西。更好,更容易阅读。对我来说,花了一个下午的时间来学习(而且我绝不是一个 l33t js 人)。
标签: javascript backbone.js coffeescript