我有一个正确显示正确数据的饼图:
# setup the pieChart
if ($( "#pieChart" ).length)
poll_labels = []
poll_data = []
poll_colors = []
$('.option_text').each (i, obj) ->
poll_labels.push($( obj ).text())
return
$('.nb_votes').each (i, obj) ->
poll_data.push($( obj ).text())
poll_colors.push('#' + Math.floor(Math.random() * 16777215).toString(16))
return
data =
labels: poll_labels
datasets: [ {
data: poll_data
backgroundColor: poll_colors
hoverBackgroundColor: poll_colors
} ]
ctx = document.getElementById('pieChart')
pollPieChart = new Chart(ctx,
type: 'pie'
data: data
animation: animateRotate:true)
$('#pieChart').on 'data:update', (event, data_id, data) ->
$('.answer_option').each (i, obj) ->
if($( obj ).attr('id') == ("option_" + data_id))
this.pollPieChart.data.datasets[0].data[i] = data
this.pollPieChart.update()
但是,data:update
事件无法找到pollPieChart变量来更新它?
它不在window.pollPieChart
,我无法在pollPieChart
下找到它。变量" disapear"在新的?
答案 0 :(得分:1)
IsDisposed
是一个局部变量,而不是事件pollPieChart
上下文中的属性。
在this
事件侦听器中,js会自动将'data:update'
设置为事件发生的元素(this
)。
只需从回调中的document.getElementById('')
之前移除this.
即可修复它,因为它是在current closure中定义的,而不是全局pollPieChart
对象。
要将其放在全局窗口上(尽管此处不需要),请使用
window