AngularJS:试图通过处理$http响应来清理API提要不起作用

AngularJS:试图通过处理$http响应来清理API提要不起作用,angularjs,Angularjs,我有一个全局变量的API提要,可以在整个应用程序中使用。原始提要如下所示: [ { id: "1", var: "g_crop_year", val: "2015" }, { id: "2", var: "g_season", val: "F" } ] [ { g_crop_year: "2015" }, { g_season: "F" } ] 对我来说,在整个应用程序中使用它是很尴尬的,我希望它看起来像这样: [

我有一个全局变量的API提要,可以在整个应用程序中使用。原始提要如下所示:

[
  {
    id: "1",
    var: "g_crop_year",
    val: "2015"
  },
  {
    id: "2",
    var: "g_season",
    val: "F"
  }
]
[
  { g_crop_year: "2015" },
  { g_season: "F" }
]
对我来说,在整个应用程序中使用它是很尴尬的,我希望它看起来像这样:

[
  {
    id: "1",
    var: "g_crop_year",
    val: "2015"
  },
  {
    id: "2",
    var: "g_season",
    val: "F"
  }
]
[
  { g_crop_year: "2015" },
  { g_season: "F" }
]
我试过这个:

$http.get('/globals')
     .success(function(globals){
         var simpleGlobals = [];
         for(var g=0; g<globals.length;g++){
            var glo = {
               globals[g].var: globals[g].val
             };
             simpleGlobals.push(glo);
          }
          $scope.globals = simpleGlobals;
      });
$http.get(“/globals”)
.成功(功能(全局){
var simpleGlobals=[];

对于(var g=0;g这将不会像您预期的那样工作:

        var glo = {
           globals[g].var: globals[g].val
         };
glo
对象的键试图成为文本
globals[g].var
;改为:

        var glo = {};
        glo[globals[g].var] = globals[g].val;

作为补充说明,您可能希望分配给
$rootScope
或一个服务,使这些全局数据可供所有控制器使用。

这不是创建指定方法的正确方法

    var glo = {
       globals[g].var: globals[g].val
     };
字符串globals[g].var实际上被视为键,而不是将其解释为值

您应该先创建一个空白对象,然后使用数组注释为键指定一个特定值

    var glo = {};
    glo[globals[g].var] = globals[g].val;

这与我的答案完全相同。我在你的答案发布时输入了我的答案。我绝不试图复制它。无论如何,我为错误地复制它道歉。