私のスクリプトでhtmlファイルに問題があります。問題は、変数をjQueryで更新し、そこからチャートを作成することです。スクリプトの前にjQueryの優先順位をつける
グラフの作成には角度を使用していますので、別のjQueryに配置することはできません。コードの
パート:私が達成しようとしています何
var chartData = [];
$.getJSON('../json/testData.json', function (json) {
for (var i=0; i < json.length; i++){
var j = json[i].Value;
chartData.push(j);
}
});
angular.module("app", ["chart.js"]).controller("BarCtrl", function ($scope) {
$scope.labels = ['2006', '2007', '2008', '2009', '2010', '2011', '2012'];
$scope.series = ['Series A', 'Series B'];
$scope.data = [
[65, 59, 80, 81, 56, 55, 40],
[28, 48, 40, 19, 86, 27, 90],
chartData
];
});
:chartDataを更新し、JSONからデータを取得し、チャートに更新された変数を置きます。
これは現在どのように機能していますか? - >それはすべて、jQueryを行うので、私は空の配列を持っています。
私の研究: jQueryの変数とスコープを操作しようとしていました。結果は変わりません。 関数にすべてを入れると、angleは機能しません。
あなたがデータを取得し、スコープの上にそれを置くために、コントローラ内部で$http
サービスを使用していないのはなぜ
angular.module("app", ["chart.js"]).controller("BarCtrl", function ($scope, $http) {
$http.get('../json/testData.json').then(function (response) {
for (var i = 0; i < response.data.length; i++) {
var j = response.data[i].Value;
jsondata.push(j);
}
});
あなたは '移動してみてくださいました( 'for'ループの直後、' getJSON'を 'angular.module'コールバックに移動します)両方のプロセスが非同期で実行されるので、彼らがお互いに待つ方法。最大のjQuery約束が言及された;それは良い選択だ。 –
非同期(getJSON)コードと同期コード(アルゴリズム全体)が混在しています。約束を見てください(しかしjQueryの約束はありません) –