缓存服务功能,所以你不要重复调用它

时间:2014-04-11 10:22:31

标签: angularjs

有没有办法以角度初始化某些服务,这样你就不必重复调用它?例如

services.factory('Util', ['$http', function($http) {
   return {
      countries: function() {
          return $http.get('/utils/countries/');
      },
      ivas: function() {
          return $http.get('/utils/ivas/');
      }
   };
}]);

我在多个控制器中使用此服务,加载所有功能需要很长时间。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以使用类似的内容,确保在通过调用Util.init()初始化应用程序时调用init方法,然后数据将仅从服务器获取一次,并且您可以在任何地方使用

services.factory('Util', ['$http', function($http) {

   var me =  {          
      data: {
          countries: [],
          ivas: []
      },
      init: function() {
          me.data.countries = $http.get('/utils/countries/');
          me.data.ivas = $http.get('/utils/ivas/');
      },
      getCountries: function() {
          return me.data.countries;
      },
      getIvas: function() {
          return me.data.ivas;
      }
   };

 return me;
}]);