我正在使用简单的 get方法
var self= this;
self.items = [];
var fetchGraphs = function() {
return $http.get('/api/graph').then(
function(response) {
self.items = response.data;
alert(self.items);
}, function(errResponse) {
console.error('Error while fetching notes');
});
};`
获取以下JSON数据。
{
"Msg": "Running",
"excMsg": null,
"array1": {
"key1": 32,
"key2": 10,
"key3": 24
},
"array2": {
"key4": 42,
"key5": 20,
"key5": 22
}}
现在我必须为array1和array2绘制图形。因为我必须声明来自 get method in script 本身的值。但它给我的错误
"无法读取key1属性。"
任何人都可以告诉我如何在另一个脚本文件
中声明我从JSON获取的数组变量答案 0 :(得分:1)
您无法直接“声明”变量。您必须使用方法或订阅事件。简单的解决方案范围。等等。请看这里: Working with $scope.$emit and $scope.$on 如果你想使用fetchGraphs(你的方法)。
fetchGraphs().then(function(result) {
// do something with result array
});
编辑:
如果你发布更多代码,这里的人可以帮助你有效。
答案 1 :(得分:1)
您必须使用fetchGraph中的then
方法,或者从$http
的成功方法返回数据。
我的建议,你可以留意self.items
。所以每当它改变时你都可以重新绘制你的图形。
$scope.$watch(
"self.items",
function () {
//re-draw your graph
$scope.$apply(); // not needed always, just a precaution
}
);