[英]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);
});
});
您可以將其存儲在如下所示的工廠中,
在您的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.