使用AngularJS的RESTAPI问题
我有一个产品RESTAPI,如下所示。JSON的第一部分帮助获取产品信息,在相同的数据中包含ID为4的产品特性和ID为2943的特性值。完整的代码张贴在末尾使用AngularJS的RESTAPI问题,angularjs,Angularjs,我有一个产品RESTAPI,如下所示。JSON的第一部分帮助获取产品信息,在相同的数据中包含ID为4的产品特性和ID为2943的特性值。完整的代码张贴在末尾 { "products":[ { "id":578, "id_manufacturer":"24", "available_later":"",
{
"products":[
{
"id":578,
"id_manufacturer":"24",
"available_later":"",
"associations":{
"product_features":[
{
"id":"4",
"id_feature_value":"2943"
}
]
}
}
]
}
目前,我已经创建了3个服务来获取这些信息,但在混合移动应用程序中打印时似乎存在一些问题。它只打印所有产品中的最后一项值。我尝试使用sub ng repeat,但它会抛出角度迭代错误
我创建混合移动应用程序是出于好奇,而不是开发人员(从论坛学习),因此我需要在两件事上有一些指导
var gos\u AppObject=angular.module('gosApp'))
.run(函数($http,CacheFactory){
$http.defaults.cache=CacheFactory('defaultCache'{
maxAge:15*60*1000,//添加到此缓存的项目在15分钟后过期
cacheFlushInterval:60*60*1000,//此缓存将每小时清除一次
deleteOnExpire:'aggressive'//过期时将从此缓存中删除项目
});
})
/*
第一次服务-主要产品,设备准备好后立即呼叫
例如
产品:焦炭罐(6包)
*/
.service('svc_Products',['$http','CacheFactory','$q',function($http,CacheFactory,$q){
var baseURL=http://localhost/goslocal/api/';
变量ws_key='ws_key=SE7ELRQWM2BLDWL21ZI87D5NK615CW26';
var resourceToAccess='products'
var baseParams='&display=full&sort=[id_DESC]&filter[active]=[1]&output_format=JSON';
CacheFactory('productsList'{
maxAge:15*60*1000,//添加到此缓存的项目在15分钟后过期
cacheFlushInterval:60*60*1000,//此缓存将每小时清除一次。
deleteOnExpire:'aggressive'//项目到期时将立即从此缓存中删除。
});
返回{
ws_产品:功能(id){
var deferred=$q.deferred();
var start=new Date().getTime();
var productsList=CacheFactory.get('productsList');
//现在,从缓存插入/删除的控制权掌握在我们手中,
//我们可以在此上下文之外与“dataCache”中的数据进行交互,
//例如,从服务器返回数据后修改数据,并
//将这些修改保存到缓存中。
if(productsList.get(id)){
deferred.resolve(productsList.get(id));
}
否则{
$http({
方法:“GET”,
url:baseURL+'/'+resourceToAccess+'?'+ws_key+baseParams,
是的,
标题:{'Content Type':'text/plain'}//或任何类型
})
.成功(功能(数据){
productsList.put(id、数据);
延迟。解析(数据);
});
}
回报。承诺;
}
};
}])
/*
第二项服务-产品功能,即4,将给出功能名称
例如
产品:焦炭罐(6包)
特征名称:重量
*/
.service('svc_ProductsFeatures',['$http','CacheFactory','$q',函数($http,CacheFactory,$q){
var baseURL=http://localhost/goslocal/api/';
变量ws_key='ws_key=SE7ELRQWM2BLDWL21ZI87D5NK615CW26';
var resourceToAccess='product\u features'
var baseParams='&output_format=JSON';
CacheFactory('productFeaturesList'{
maxAge:15*60*1000,//添加到此缓存的项目在15分钟后过期
cacheFlushInterval:60*60*1000,//此缓存将每小时清除一次。
deleteOnExpire:'aggressive'//项目到期时将立即从此缓存中删除。
});
返回{
ws_ProductFeatures:函数(id,intFeatureID){
var deferred=$q.deferred();
var start=new Date().getTime();
var productFeaturesList=CacheFactory.get('productFeaturesList');
if(productFeaturesList.get(id)){
deferred.resolve(productFeaturesList.get(id));
}
否则{
$http({
方法:“GET”,
url:baseURL+'/'+resourceToAccess+'/'+intFeatureID+'?'+ws_key+baseParams,
是的,
标题:{'Content Type':'text/plain'}//或任何类型
})
.成功(功能(数据){
productFeaturesList.put(id、数据);
延迟。解析(数据);
});
}
回报。承诺;
}
}
}])
/*
第三种服务产品功能值-这将给出产品功能值
例如
产品:焦炭罐(6包)
特点:重量
特征值:6 x 300ml。
*/
.service('svc_ProductsFeatureValues',['$http','CacheFactory','$q',function($http,CacheFactory,$q){
var baseURL=http://localhost/goslocal/api/';
变量ws_key='ws_key=SE7ELRQWM2BLDWL21ZI87D5NK615CW26';
var resourceToAccess='product\u feature\u values'
var baseParams='&output_format=JSON';
CacheFactory('productFeaturesValuesList'{
maxAge:15*60*1000,//添加到此缓存的项目在15分钟后过期
cacheFlushInterval:60*60*1000,//此缓存将每小时清除一次。
deleteOnExpire:'aggressive'//项目到期时将立即从此缓存中删除。
});
返回{
ws_ProductFeaturesValue:函数(id,intFeatureValueID){
var deferred=$q.deferred();
var启动=