- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
这样我的直方图就可以正常工作了,当我像在页面加载期间一样加载它时。
$(document).ready()
{
x = new Array(10);
for (var i = 0; i < 10; i++) {
x[i] = new Array(2);
x[i][0]="txt";
x[i][1]=100;
}
loadChart2(x);
}
Google 柱形图代码:(取自 Google charting api)
function loadChart2 (histValues)
{
console.log('histValues:'+histValues);
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable(histValues);
var options = {
hAxis: {title: 'Score', titleTextStyle: {color: 'red'}}
};
var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
};
我的问题:
但是当我从我的 angularJS Controller 中调用 loadChart2() 时,整个屏幕变成白色并且浏览器控制台中没有显示任何错误。
$http({method: 'GET', url: urlGetHistogramData, timeout: maxTime})
.success(function (data) {
x=new Array(data.score_hist.length);
var i=0;
$.each(data.score_hist, function(){
x[i] = new Array(2);
x[i][0]=this.interval_start;
x[i][1]=this.count;
i++;
});
loadChart2(x);
});
调试信息:
我可以在控制台中看到打印了 interval_start
和 count
值,因此服务返回值正常
另外,我可以看到 histValues
从 loadChart() 函数期待地打印在控制台上。
这是一个相关的问题,如果你想要更深入的细节 How to create a historgram from json
只要我将 loadChart2()
函数放入任何 AngularJS onClick 或任何函数中,我就会在控制台中看到完全白屏且没有错误。似乎没有人对我的问题发表任何评论,我会根据我对此的发现更新此页面。
编辑我正在寻求解决这个问题的方法,我问了一个与这个问题相关的问题 https://stackoverflow.com/questions/16816782/how-set-charts-data-in-google-chart-tool-directive-module-from-a-dynamically-po
最佳答案
关键是在 Google 图表库加载后手动引导 Angular 模块:
应用
var app = angular.module('app', []);
指令
app.directive('chart', function() {
return {
restrict: 'E',
replace: true,
scope: {
data: '=data'
},
template: '<div class="chart"></div>',
link: function(scope, element, attrs) {
var chart = new google.visualization.LineChart(element[0]);
var options = {};
scope.$watch('data', function(v) {
var data = google.visualization.arrayToDataTable(v);
chart.draw(data, options);
});
}
};
});
Controller
app.controller('ChartController', function($scope) {
$scope.scoreHistory = [];
$scope.loadDataFromServer = function() {
var x = [
['interval', 'count']
];
var scoreHistory = [
{
intervalStart: 12,
count: 20
},
{
intervalStart: 100,
count: 200
},
{
intervalStart: 200,
count: 50
},
{
intervalStart: 250,
count: 150
}
];
angular.forEach(scoreHistory, function(record, key) {
x.push([
record.intervalStart,
record.count
]);
});
$scope.scoreHistory = x;
};
});
伏都教
google.setOnLoadCallback(function() {
angular.bootstrap(document, ['app']);
});
google.load('visualization', '1', {packages: ['corechart']});
查看
<div ng-controller="ChartController">
<button ng-click="loadDataFromServer()">load data</button>
<chart data="scoreHistory"></chart>
</div>
如您在此示例中所见,我制作了一个图表指令以便您可以重复使用它。
关于javascript - 为什么从 AngularJS Controller 内部加载时 google graph 不工作。浏览器变白,控制台没有任何错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16723011/
我正在使用 RecyclerView 到 ViewPager 共享元素转换。问题是,当 viewpager 被分页到另一个图像时,在返回到 recyclerview 后,首先被动画化的 imagevi
我正在使用 WKWebView 在我的应用程序中显示谷歌地图。这是网址:http://ec2-54-198-148-171.compute-1.amazonaws.com/map_question.h
因此,在工作中,我正在为某人编写 Excel 中的宏/用户表单。它工作得很好(我认为),并且完全完成了它需要做的事情,并且运行时间不到 1 分钟,遍历了大约 70k 个单元并组织它们。现在我想知道是否
我有一个嵌入到 UITableViewCell 中的 MKMapView。有时,该部分会重新加载。问题是当刷新发生时, map 单元决定突然变白。 这是基本代码 - (void)viewDidLoad
我想让我的 android 屏幕暂时“闪烁”白色(仅一次)。它需要足够长,以便用户能够分辨出屏幕确实变白了。 用户将登陆一个屏幕,该屏幕将在 5 秒后闪烁白色,然后再次显示原始屏幕(可能从白色逐渐消失
在 ICS 上(据我所知),当我在 web View 中打开一个单选元素或另一个对话框元素时,一旦该元素关闭,我就会得到一个白屏,单选框除外。元素仍然可以在 webview 中点击,一旦点击,它们就会
我正在 Canvas 上正确绘图并将其保存为位图。但是,我想通过单击按钮将 Canvas 重置为白色。 这是我的代码: public class Canvas extends View { P
我有一款游戏最初是在 XCode 中使用 cocos2d v2.x 编写的(未使用其他实用程序)。 我一直在将其移植到 Spritebuilder 项目,并因此移植到 cocos2d V3.x。我遇到
在 Tint Sprite White 使用简单着色器示例代码位于 Sprite Effects Sample ,我已将着色器的 .fx 文件加载到示例项目中,并替换了其中一个 Draw() 调用中的
我是一名优秀的程序员,十分优秀!