我對protovis很新。我試圖瞭解http://mbostock.github.com/protovis/docs/panel.html的例子,我可以理解left(function() this.index * 10)
實際上是left(function(){return this.index * 10;})
當函數被調用時,範圍被傳遞給它this
很好,直到現在。 BUt data(function(array) array)
不接受來自this
的數組。而是傳遞給它。從這個array
通過?我無法理解鏈條的流動。protovis神奇屬性
0
A
回答
0
這是Protovis的許多部分之一,起初有點令人困惑。當您將數據添加到一個標記,如:
var mark = new pv.Panel()
.data([1,2,3]);
的標誌將是data
陣列中的每個項目複製一次,並通過了相應的項目作爲第一個參數的功能,例如:
new pv.Panel()
.data([1,2,3])
.title(function(d) { // <-- d is 1, 2, or 3
return d;
});
附加到mark
任何子標誌也將收到這個數據點,然後可以通過孩子的標記被用作其功能的輸入參數,如:
new pv.Panel()
.data([1,2,3])
.add(pv.Label)
.text(function(d) { // <-- d is 1, 2, or 3
return d;
});
但是,子標記也可以定義自己的data()
,它將相應地複製該標記。一種兒童標記的數據可以是完全獨立的,例如:
new pv.Panel()
.data([1,2,3])
.add(pv.Label)
.data([3,4,5])
.text(function(d) { // <-- d is 3, 4, or 5
return d;
});
但通常,如在鏈接到該示例中,父將具有2或3 d數組作爲它的數據,而子將基地它通過的子陣列上的data()
:
new pv.Panel()
.data([[1,2,3], [3,4,5]])
.add(pv.Label)
.data(function(d) { // <-- d is [1,2,3] or [3,4,5]
return d;
})
.text(function(d) { // <-- d is either 1, 2, or 3,
// OR 3, 4, or 5
return d;
});
相關問題
- 1. 訪問Protovis行中的值屬性
- 2. 指向屬性的表達式神奇地有一個轉換
- 3. 精神SA屬性號
- 4. 神奇記錄持久性的問題
- 5. Protovis Tooltip
- 6. Enumerator#feed的神奇
- 7. MATLAB神奇的神祕計時行爲
- 8. 升壓精神:強制屬性上無屬性解析器
- 9. 如何使用神奇記錄庫獲取屬性中的所有值Swift
- 10. 檢索神器項目作爲屬性
- 11. Maven finalName屬性缺失神器擴展
- 12. 類中的奇怪屬性
- 13. 奇怪的HTML屬性
- 14. 奇怪的行爲屬性
- 15. 奇怪的屬性錯誤
- 16. Labeling ParentNode - Protovis Treemap
- 17. Protovis bullet chart boundaries
- 18. setbounds值是神奇數字
- 19. gtk_entry_set_activates_default沒有做到神奇
- 20. ClassNotFoundException的是神奇選中
- 21. Laravel聽起來很神奇
- 22. 「神奇」的QTextEdit大小
- 23. LDD找到libQtCore神奇
- 24. Xcode/Clang的神奇數字?
- 25. Installshield OnInstalledXXX神奇地叫?
- 26. __reversed__神奇的方法
- 27. 字節改變神奇
- 28. AFIncrementalStore的神奇記錄
- 29. 神奇紀錄:和聚集
- 30. 檢查神奇數字