带有KendoUI图表的KnockoutJS组件只适用于最后一个图表
KnockoutJS components with KendoUI chart only works for the last chart
我有一个可观察数组,它创建了一个带有参数的组件。
在每个组件中,我使用该参数查询数据(通过AJAX)。我将这些数据返回到一个可观察数组中,并使用该数组作为KendoUI图表的数据源。
带有参数的组件列表示例:
<csglist params="account:'08167526'"></csglist>
<hr>
<csglist params="account:'0873458'"></csglist>
<hr>
<csglist params="account:'0828337'"></csglist>
<hr>
<csglist params="account:'086778'"></csglist>
获取数据
的调用
getCategory = function () {
self.categoryChart([]);
xhr_get(cont.publish + 'api/dbmain/getCategory', { 'id': params.account }).done(function (allData) {
var mappedLogs = $.map(allData, function (item) { return new categoryData(item) });
self.categoryChart(mappedLogs);
buildChart();
})
}
function buildchart(){
$(document).ready(createChart);
$(document).bind("kendo:skinChange", createChart);
}
创建图表
function createChart() {
$("#" + self.act() + "chart").kendoChart({
dataSource: {
data: ko.toJS(self.categoryChart)
//, sort: { field: "category", dir: "asc" }
},
title: {
text: self.type()
},
legend: {
visible: true,
position: "bottom"
},
seriesDefaults: {
type: "bar",
stack: true
},
series: [{
field: "sales",
name: "Current Sales",
color: "#66110F"
}, {
field: "opp",
name: "Opportunity",
color: "#E65F5B"
}],
valueAxis: {
// max: 180,
line: {
visible: false
},
minorGridLines: {
visible: true
},
visible: false
},
categoryAxis: {
field: "category",
majorGridLines: {
visible: false
}
},
tooltip: {
visible: false,
template: "#= series.name #: #= value #"
}
});
}
但是当所有组件都创建后,只有最后一个组件有数据。
谁能告诉我为什么会这样?当我将buildChart =函数更改为self时。buildChart = function,它工作了!
相关文章:
- 缩放仅适用于一个图元
- 在循环中添加addEventListener()只适用于最后一个按钮
- 我怎么能有一个自动渐变背景使用JavaScript,它适用于最新版本的Internet Explorer
- 插件总是只得到最后一个实例,如何让它适用于多个元素
- 使jQuery自动完成功能适用于多个单词(“跳过”一个单词)
- onclick适用于一个按钮,但不适用于'不要为别人工作
- 我想放一个JS函数,它适用于列表的所有元素,但我可以't将其复制到每个元素中
- JavaScript-getElementsByClassName适用于一个函数,但不适用于另一个函数
- Jstree-Can't在AJAX调用中选中复选框,适用于经典调用.一个问题
- 添加混合 javascript 函数,使内容淡入列内的另一个内容/使其适用于两个单独的列
- 谷歌地点/几何库仅适用于一个国家
- 绑定函数仅适用于最后一个元素
- 幻灯片放映-将幻灯片链接到URL,仅适用于最后一张幻灯片
- 动态按钮点击事件仅适用于最后一个按钮
- Mootools每个函数只适用于数组中的最后一个基金
- 函数仅适用于第一个td's、 但不是针对所有的td's
- For in循环只适用于对象中的最后一个键
- 函数只适用于最后一次调用
- 带有KendoUI图表的KnockoutJS组件只适用于最后一个图表
- 节点.js如何使一个变量更改也适用于另一个变量更改