![](/img/trans.png)
[英]CoffeeScript variable scoping and inheritance in Meteor > 1.0
[英]coffeescript and meteor variable scoping issue
我在流星上使用coffeescript,我認為范圍有問題。
我的應用程序繪制了一個平面圖,我正在嘗試在其上覆蓋一個熱圖(使用h337)。
@heatmap = null
initHeatMap = ( layer_name ) ->
console.log 'creating heatmap on %s', layer_name
h337.create
container: document.querySelector layer_name
gradient:
0.2: 'green'
0.5: 'orange'
0.8: 'red'
radius: 11
maxOpacity: 1.0
minOpacity: 0.6
blur: 0.6
drawHeatMap = ( metric ) ->
@heatmap.setData
max: 50
min: 0
data: regenData metric
redraw = ( metric ) ->
console.log 'redraw: %o', @heatmap
drawHeatMap metric
Template.sensor_list.rendered = () ->
@heatmap = initHeatMap '.heatmap'
console.log 'created map: %o', @heatmap
redraw 'temp'
基本上,我從chrome開發人員工具控制台看到的是:
creating heatmap on .heatmap
created map: Heatmap
redraw: null
為什么redraw()
聲稱@heatmap
仍然為null
?
在的CoffeeScript假設這是這樣在JavaScript, 這是函數上下文,並且將針對每個功能不同。 實際上,您永遠不會在全局范圍內設置您創建的變量,因為它始終被此對象表示的函數上下文掩蓋。
嘗試將@heatmap(無處不在)更改為熱圖,看看是否可以解決。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.