如何动态绑定angular-Charts的数据
How to Bind Data Of angular-Charts Dynamically
我在我的应用程序中使用 angular-charts
指令,当我们设置数据 initially.But 当我从 json 文件读取数据并将数据分配给图表时,它运行良好,它只生成 x 轴和 y 轴但不是 legends.Here 是我的代码,
HTML:
<div id="content" ng-controller="MainCtrl1" class="box-content">
<div style="position:relative">
<div data-ac-chart="'bar'" data-ac-data="widget.data" data-ac-config="config" class="chart">
</div>
</div>
这是我从文件中读取数据的模型,
<div class="col-lg-6 col-md-6">
<div class="form-group">
<div >
<input type="file" on-read-file="showContent($fileContent)" />
</div>
</div>
App.JS:
$scope.data = {
"series": ["Northern", "Western", "Southern", "East", "Center"],
"data": [ {
"x": "Mahinda",
"y": [90, 800, 600,100,900]
}, {
"x": "Maithiri",
"y": [351,439,380,800,300]
}, {
"x": "Others",
"y": [140, 33,230, 879,43]
}]
};
这里是将数据分配给小部件,
$scope.addBarChart = function() {
$scope.dashboard.widgets.push({
name: "General election",
sizeX: 110,
sizeY: 50,
type:"Bar",
data:$scope.data
});
};
这很好用,这是输出。
然后我从 json 文件中读取数据并分配给小部件的数据对象,
$scope.showContent = function($fileContent){
$scope.widget.data = $fileContent;
};
这是输出:
控制台也没有错误。
尝试添加 $scope.$apply();在 $scope.widget.data = $fileContent;
之后
你的问题解决方法很简单。
您使用 "on-read-file" 指令获取的文件内容,它 returns 字符串格式的文件内容。
anguar-charts 数据 属性 应该始终采用 JSON 格式
只有你需要做 JSON.parse() received $fileContent to JSON。
代码
$scope.showContent = function($fileContent) {
$scope.widget.data = JSON.parse($fileContent);;
};
我创建了一个 test.txt 文件用于测试,并在其中编写了以下代码。
test.txt
{
"series": ["Northern", "Western", "Southern", "East", "Center"],
"data": [ {
"x": "Mahinda",
"y": [90, 800, 600,100,900]
}, {
"x": "Maithiri",
"y": [351,439,380,800,300]
}, {
"x": "Others",
"y": [140, 33,230, 879,43]
}]
}
您可以参考fiddle link了解更多信息。
希望对您有所帮助。
我在我的应用程序中使用 angular-charts
指令,当我们设置数据 initially.But 当我从 json 文件读取数据并将数据分配给图表时,它运行良好,它只生成 x 轴和 y 轴但不是 legends.Here 是我的代码,
HTML:
<div id="content" ng-controller="MainCtrl1" class="box-content">
<div style="position:relative">
<div data-ac-chart="'bar'" data-ac-data="widget.data" data-ac-config="config" class="chart">
</div>
</div>
这是我从文件中读取数据的模型,
<div class="col-lg-6 col-md-6">
<div class="form-group">
<div >
<input type="file" on-read-file="showContent($fileContent)" />
</div>
</div>
App.JS:
$scope.data = {
"series": ["Northern", "Western", "Southern", "East", "Center"],
"data": [ {
"x": "Mahinda",
"y": [90, 800, 600,100,900]
}, {
"x": "Maithiri",
"y": [351,439,380,800,300]
}, {
"x": "Others",
"y": [140, 33,230, 879,43]
}]
};
这里是将数据分配给小部件,
$scope.addBarChart = function() {
$scope.dashboard.widgets.push({
name: "General election",
sizeX: 110,
sizeY: 50,
type:"Bar",
data:$scope.data
});
};
这很好用,这是输出。
然后我从 json 文件中读取数据并分配给小部件的数据对象,
$scope.showContent = function($fileContent){
$scope.widget.data = $fileContent;
};
这是输出:
控制台也没有错误。
尝试添加 $scope.$apply();在 $scope.widget.data = $fileContent;
之后你的问题解决方法很简单。
您使用 "on-read-file" 指令获取的文件内容,它 returns 字符串格式的文件内容。 anguar-charts 数据 属性 应该始终采用 JSON 格式 只有你需要做 JSON.parse() received $fileContent to JSON。
代码
$scope.showContent = function($fileContent) {
$scope.widget.data = JSON.parse($fileContent);;
};
我创建了一个 test.txt 文件用于测试,并在其中编写了以下代码。
test.txt
{
"series": ["Northern", "Western", "Southern", "East", "Center"],
"data": [ {
"x": "Mahinda",
"y": [90, 800, 600,100,900]
}, {
"x": "Maithiri",
"y": [351,439,380,800,300]
}, {
"x": "Others",
"y": [140, 33,230, 879,43]
}]
}
您可以参考fiddle link了解更多信息。 希望对您有所帮助。