我有一个应用程序,我正在进行多个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
...
缓存信息的回放方式令我感到困惑。
感谢。
答案 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 });