如何在angularjs应用程序中存储数据?

时间:2017-04-08 05:43:52

标签: javascript angularjs

Folder Stucture您好我正在开发我的第一个Angularjs应用程序。我想在Angularjs应用程序中保存数据供以后使用(之前我在jquery中使用过localstorage)。 例如,我将进行ajax调用,我将得到一些数据,让我们在下面举例说明,

  $http.post('http://192.168.0.213:1234/api/VerifyUser', $stateParams.pageList).then(function (response) {
                alert(response.data);

另一个例子,在成功登录后,我会得到一些ID作为响应,我想在整个应用程序中保留这些数据。我可以在所有后续的ajax调用中使用此ID。 我会得到一些响应数据,我也想在其他控制器中使用这些数据。有什么方法可以做到这一点吗?任何帮助,将不胜感激。谢谢。

3 个答案:

答案 0 :(得分:1)

可以使用以下选项实现控制器之间的数据共享:

然后,您可以跨控制器注入服务,并在需要时使用数据。

app.service('myService', function($http) {
  this.getJSON = function() {
    $http.post('http://192.168.0.213:1234/api/VerifyUser', $stateParams.pageList).then(function(response) {
      return response.data;
    });
  };
});

在控制器中:

app.controller('myController', function($scope, myService) {

  myService.getJSON().then(function(data) {
    $scope.myData = data;
    console.log(data);
  });

});

DEMO

答案 1 :(得分:1)

您可以将它存储在工厂中,如下所示

Ajax通话后

$http.post('http://192.168.0.213:1234/api/VerifyUser', $stateParams.pageList).then(function (response) {

                alert(response.data)
SomeFactory.setData(response.data);
};

<强> SomeFactory

    (function () {
  'use strict';

  angular
    .module('app.myApp')
    .factory('SomeFactory', SomeFactory);

  SomeFactory.$inject = [];

  function SomeFactory() {
    var someData;

    var factory = {
      setData: setData,
      getData: getData
    };



    function setData(data) {
      someData = data;
    }

    function getData() {
      return someData;
    }

    return factory;
  }
})();

在您的控制器中

将您的工厂注入您的控制器,然后获取数据

(function () {
  'use strict';

  angular
    .module('app.login')
    .controller('LoginController', LoginController);

  LoginController.$inject = ['SomeFactory'];

  function LoginController(SomeFactory) {
   var vm = this;
   vm.someVariable = SomeFactory.getData();
   console.log(vm.someVariable);  // logs your data

}
})();

答案 2 :(得分:0)

使用Service存储数据,稍后在另一个控制器中获取数据。

当您注入服务时,它在每个控制器中都是相同的服务 - 因此您可以访问该服务中的属性和方法。

https://docs.angularjs.org/guide/services

示例:

.service('YourService', function(){
var YourService = {};
YourService.yourvar = '';
return YourService;
})

.controller('controller1', function($scope, YourService){
YourService.yourvar = 'blah';
})

.controller('controller2', function($scope, YourService){
$scope.currentYourVar = YourService.yourvar;
})