簡體   English   中英

如何在angularjs應用程序中存儲數據?

[英]How to store data in angularjs application?

文件夾結構 嗨,我正在開發我的第一個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。 我將得到一些數據作為響應,我也想在其他控制器中使用這些數據。 有什么辦法可以做到嗎? 任何幫助,將不勝感激。 謝謝。

可以通過以下選項實現控制器之間的數據共享:

然后,您可以跨控制器注入服務並在需要時使用數據。

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

您可以將其存儲在如下所示的工廠中,

在您的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

}
})();

使用服務來存儲數據,並稍后在另一個控制器中獲取數據。

注入服務時,它在每個控制器中都是相同的服務-因此您可以遍歷該服務中的屬性和方法。

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;
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM