首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Knockout-Kendo图中的动态系列图例

Knockout-Kendo图中的动态系列图例
EN

Stack Overflow用户
提问于 2014-02-27 16:56:10
回答 1查看 987关注 0票数 1

我有一个对象集合,其数据需要显示为动态的kendo图表。我正在使用Niemeyer的Knockout-Kendo库和KO观测射线。我使用一个相对值将数据绘制到kendo图表上,但我需要显示与数据关联的实际文本值。Kendo有一个模板属性可以实现这一点,但是我遇到了一个路障,使得它在Knockout库中工作。

Fiddle

这是带有数据的起作用的小飞车

目标

使用查找值在图表的ValueAxis和ToolTip中显示

参考资料

Kendo标签模板文档

带有标签示例函数的Kendo图

Niemeyer Knockout-Kendo图文档

数据片段

代码语言:javascript
复制
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和数据绑定

代码语言:javascript
复制
<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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-27 17:18:17

您必须在全局范围内公开助手函数,以便Kendo模板代码能够找到它。code代码运行在onload函数中,因此您的getOptionText函数不是全局函数。

你可以这样做:

代码语言:javascript
复制
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/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22075143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档