如何在脚本中定义angularjs变量

时间:2015-11-21 10:03:04

标签: javascript json angularjs angularjs-directive angularjs-scope

我正在使用简单的 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获取的数组变量

2 个答案:

答案 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
      }
);