【发布时间】:2016-01-06 17:07:18
【问题描述】:
我在用户登录后使用工厂获取 JSON 数据。如果用户名和密码正确,它应该从 api 链接中提取 JSON 数据。我的应用程序中有几个控制器需要使用这些数据。我想避免与我所有的控制器共享这个工厂,因为我不想保留“获取”数据。我只希望这个工厂与登录控制器一起使用。
如何保存来自“dummyData”的数据,然后所有其他控制器都可以使用该数据而不必每次都发出“GET”请求?
angular.module('ciscoImaDashboardApp').factory('dummyData', ['$q', '$http', function($q, $http) {
var apiServices = {};
apiServices.saveData = function(user,password) {
var deferred = $q.defer();
var req = $http({
method: 'GET',
url: 'http://magainteractive.com/prototypes/cisco-ima-dashboard/cms/web/api/login/login/?username='+user+'&password='+password
});
req.success(function(response) {
deferred.resolve(response);
});
req.error(function(err) {
console.log("there was an error: "+err);
deferred.reject(err);
});
return deferred.promise;
}
return apiServices;
}]);
【问题讨论】:
-
您可以使用$cacheFactory并在第一次调用后保存结果
-
看看我在这篇文章中的回答:stackoverflow.com/questions/33968655/…
-
你能用
$rootScope吗?一个例子SO post
标签: angularjs