AngularJS:试图通过处理$http响应来清理API提要不起作用
我有一个全局变量的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" } ] 对我来说,在整个应用程序中使用它是很尴尬的,我希望它看起来像这样: [
[
{
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;
这与我的答案完全相同。我在你的答案发布时输入了我的答案。我绝不试图复制它。无论如何,我为错误地复制它道歉。