我有一个对象集合,其数据需要显示为动态的kendo图表。我正在使用Niemeyer的Knockout-Kendo库和KO观测射线。我使用一个相对值将数据绘制到kendo图表上,但我需要显示与数据关联的实际文本值。Kendo有一个模板属性可以实现这一点,但是我遇到了一个路障,使得它在Knockout库中工作。
Fiddle
这是带有数据的起作用的小飞车
目标
使用查找值在图表的ValueAxis和ToolTip中显示
参考资料
Kendo标签模板文档
Niemeyer Knockout-Kendo图文档
数据片段
var theData =[{
"TrackerName": "Fruits",
"Trackers": [{
"TrackerName": "Fruits",
"TrackerDate": "2014-02-12T00:00:00",
"OptionText": "5-7 servings",
"RelativeValue": 3
},
{
"TrackerName": "Fruits",
"TrackerDate": "2014-02-13T00:00:00",
"OptionText": "5-7 servings",
"RelativeValue": 3
},
etc];HTML和数据绑定
<div data-bind="foreach:AllTrackers">
<h3 data-bind="text:TrackerName"> </h3>
<!-- ko with: Trackers -->
<div data-bind="kendoChart:
{
data: $data,
chartArea: {
height:100
},
series: [
{
type: 'line',
style:'smooth',
field: 'RelativeValue',
markers: {
visible: true,
background: '#c0c0c0',
size: 10
},
tooltip: {
visible: true,
background: '#f0f0f0'
}
}],
seriesColors: ['midnightblue'],
valueAxis: {
labels: {
template: 'Help #=value#'
},
line: {
visible: false
},
min: 1,
max: 4,
majorUnit: 1
}
,
categoryAxis: {
categories:$parent.CategoryDates,
majorGridLines: {
visible: false
}
}
}">
</div>
<!-- /ko -->
</div>发布于 2014-02-27 17:18:17
您必须在全局范围内公开助手函数,以便Kendo模板代码能够找到它。code代码运行在onload函数中,因此您的getOptionText函数不是全局函数。
你可以这样做:
window.myApp = {
helpers: {
getOptionText: function(q ){
//these are not the real values, but you get the idea
if(q===1){
return 'Bare minimum';
}
if (q ===2){
return 'Some effort ';
}
if (q ===3){
return 'Good ';
}
if (q ===4){
return 'Great ';
}
}
}
};然后,使用一个模板,如:‘#=myApp.helpers.getOptionText(值)#’
http://jsfiddle.net/rniemeyer/X2WBL/
https://stackoverflow.com/questions/22075143
复制相似问题