javascript - AngularJS - Best approach for taking data from factory and if not there use http service -
in angularjs application, have set data received 1 controller's ajax , put in factory method reuse in other controllers. problem when user reload page, factory method useless.
app.factory('factory', function () { return { set: set, get: } }); app.controller ('testcontroller', function ($scope, factory) { if (factory.get('name')) { $scope.name= factory.get('name'); } else { $http.get(url).then(function(res) { $scope.name= res.name; factory.set('name', res.name); }); } });
what best way retrieve check in factory method value factory, if not there take http service , in controller common code needs handle these 2 cases done factory method?
here when data taken http service returns promise otherwise plain value.
this code fetch data server if 'cachedresult' variable not set, otherwise return promise stored variable.
app.factory('factoryname', ['$http','$q', function($http,$q) { var cahedresult = null; var mymethod = function(args) { var deferred = $q.defer(); if (cahedresult){ deferred.resolve({ data : cahedresult }); return deferred.promise; } $http.get(....).then(function(response){ cahedresult = response.data; deferred.resolve({ data : cahedresult }); },function(error){ deferred.reject('error'); }); } }; return { mymethod : mymethod } ])
but store data in local storage or in cookie when first controller fetch info it's available if user refresh browser.
Comments
Post a Comment