0
我有一个模型扩展Backbone.Model并有一个名为'labels'的数组属性,默认情况下标签是空的,但后来会填充第二个函数中的数据并用于第三个函数,但是I有问题访问 '标签',这里是我的代码在骨干模型中获取属性
class GroupTreatmentGraphModel extends Backbone.Model
initialize:() ->
defaults:
type : 'bar'
labels: []
yFormatter: (y) -> y + ' counts'
xFormatter:(x) ->
for p,q of labels <-- get error msg: ReferenceError: labels is not defined
console.log "lp=#{p}, lq=#{q}"
labels[parseInt(x)]
setData: (cid, data) ->
[email protected]('labels')
console.log "1. get series, label.length="+tmp.length <-- works fine here
series = _.find @get('series'), (item) -> item .cid == cid
series.setData(data)
countDone = _.countBy @get('series'), (item) -> if item.get('data')? then 'done' else 'notdone'
if countDone.done == @get('series').length
@setLabels(data)
@set('done', true)
setLabels: (data) ->
lbl = []
for k,v of data
if typeof(v.z) isnt "undefined" <-- for example: k=0, v.x=0, v.z='hell..o,worm!'
lbl[parseInt(v.x)] = v.z
@set('labels', lbl)
tmp = @get('labels')
console.log "label length="+ tmp.length <-- works fine here
sync:() ->
callback = (err, response, cid) =>
console.log err if err
@setData(cid, response) if response
series = @get('series')
if series
_.each series, (singleSeries) ->
$.ajax
cache: false
type: 'GET'
url: singleSeries.get('uri')
dataType: 'json'
error: (jqxhr) ->
callback jqxhr, null, singleSeries.cid
success: (response) ->
callback null, response, singleSeries.cid
return GroupTreatmentGraphModel
和我的应用程序代码是:
graph = new GroupTreatmentGraphModel
position: 2
title: 'SM Total vs Success By Group-Treatment'
series: [
new SeriesData
name: 'gtt'
color: 'steelblue'
uri: '/api/gtt'
new SeriesData
name: 'gts'
color: 'lightblue'
uri: '/api/gts'
]
谢谢!