在angularJS中从web服务获取信息的干净方法是什么?

时间:2014-04-10 14:13:22

标签: web-services angularjs

我有一个前端Angular App,可以从服务器端获取REST API上的信息。 当我提出请求时,我只想做一次,所以,请将数据保存在前端应用中。

我发现了几个例子,但是:

  • 逻辑在控制器中 - >不是一个好习惯
  • 变量存储在根范围内 - >一般来说不是一个好习惯

有人告诉我使用服务来做这件事。 例如,根据我的理解,我应该有一个GET用户配置文件的服务,以及另一个在完成GET请求后保留这些信息("配置文件"服务)的服务。

如果我调用GET请求的服务是这样的话,有人可以告诉我如何执行此操作:

.factory('userPromise', ['$http', '$q', 'baseUrl',
                          function ($http, $q, baseUrl) {
    return {
        getUser: function(usn, uid, key) {
            return $http.get(baseUrl + 'business_infos/' + parseInt(uid) + '/'
                             + '?format=json&username=' + usn + '&api_key=' + key).then(function(response) {
                return response.data;
            });
        }
    };
}])

请注意,我不想只是缓存信息。我想从我得到的可以包含其他信息的用户配置文件中创建。

它会是这样的:

{
    profile:  {
        firstname: "Thierry",
        lastname: "Chatel"
    },
    hasRole: function (role) {
        return ...
    }
}

谢谢!

1 个答案:

答案 0 :(得分:0)

有cacheFactory的文档,你可以缓存数据并获取它 http://code.angularjs.org/1.2.14/docs/api/ng/service/ $ cacheFactory