AngularJS:如何使用ngOption迭代缓存的Api调用中的数据

时间:2016-06-15 18:02:37

标签: javascript angularjs ng-options

我有一个应用程序,我正在进行多个API调用并缓存该数据以供日后使用。然后在应用程序中的其他人,我想检索该数据并使用ng-option在下拉列表中列出它。 要获取每个调用的缓存数据,我正在执行

var httpCache = $cacheFactory.get('$http');
var cachedImpactedEntities =  httpCache.get('my api url');

这将返回数组中的数组对象,如下所示:

[200,"[  {  
"entity_id": 1,"entity_desc": "test1"  },  
{"entity_id": 2,"entity_desc": "test2"}]",
{"content-type":"application/json; 
charset=utf-8"},"OK"]

什么是在引号中提取内部数组并输出每个" entity_desc"的好方法。使用ng-option下拉到下拉列表:

test1
test2
...

缓存信息的回放方式令我感到困惑。

感谢。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,以下就足够了:

$scope.cachedEntities = eval(cachedImpactedEntities[1]);
<select ng-options="item as item.entity_desc for item in cachedEntities track by item.entity_id" ng-model="selected"></select>

但这意味着每次从api调用中获取数据时,您都需要“手动”更新cachedEntities。 考虑使用promise构造:

$http.get("url+parameters").then(function(data) { $scope.cachedEntities = data}, function(){ // do something on error });