使用AngularJS的RESTAPI问题

使用AngularJS的RESTAPI问题,angularjs,Angularjs,我有一个产品RESTAPI,如下所示。JSON的第一部分帮助获取产品信息,在相同的数据中包含ID为4的产品特性和ID为2943的特性值。完整的代码张贴在末尾 { "products":[ { "id":578, "id_manufacturer":"24", "available_later":"",

我有一个产品RESTAPI,如下所示。JSON的第一部分帮助获取产品信息,在相同的数据中包含ID为4的产品特性和ID为2943的特性值。完整的代码张贴在末尾

{  
           "products":[  
              {  
                 "id":578,
                 "id_manufacturer":"24",
                 "available_later":"",
                 "associations":{  
                    "product_features":[  
                       {  
                          "id":"4",
                          "id_feature_value":"2943"
                       }
                    ]
                 }
              }
           ]
    }
目前,我已经创建了3个服务来获取这些信息,但在混合移动应用程序中打印时似乎存在一些问题。它只打印所有产品中的最后一项值。我尝试使用sub ng repeat,但它会抛出角度迭代错误

我创建混合移动应用程序是出于好奇,而不是开发人员(从论坛学习),因此我需要在两件事上有一些指导

  • 在代码中,我做错了,导致它打印最后一个 要素值和要素值仅限实际值
  • 建议使用3种服务还是我应该使用 考虑到这是一款混合移动应用程序,将其合并为一款
  • 谢谢

    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启动=