[英]angular - local storage not working
我正在嘗試使用AngularJS ngStorage模塊加載應用程序時將數據存儲在本地存儲中。
我有以下代碼:
app.js:
angular.module('app', ['ionic', 'app.controllers', 'app.routes', 'app.services', 'app.directives', 'ngCordova', 'ngStorage'])
.run(function($ionicPlatform) {
$ionicPlatform.ready(function() {
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if(window.cordova && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
}
if(window.StatusBar) {
// org.apache.cordova.statusbar required
StatusBar.styleDefault();
}
$localStorage.message = "Hello World";
});
})
然后,使用我的控制器,執行以下操作。
controller.js:
$scope.data = $localStorage.message;
最后輸出保存的消息。
message.html
<div><p> Saved Message:{{ data}} </p></div>
使用Chrome Inspect工具檢查本地存儲時,看不到存儲的消息。 知道如何在啟動時從app.js保存數據嗎?
根據文檔:
var app = angular.module('app', ['ngStorage'])
.config(['$localStorageProvider',
function ($localStorageProvider) {
$localStorageProvider.get('MyKey');//gets
$localStorageProvider.set('MyKey', { k: 'value' });/sets
}]);
要么
localStorage.setItem('message', 'helloworld');//saves in developer tools
$scope.getItem=localStorage.getIem('message');
您需要在運行方法以及控制器中注入$ localStorage服務。 像這樣:
angular.module('app', ['ionic', 'app.controllers', 'app.routes', 'app.services', 'app.directives', 'ngCordova', 'ngStorage'])
.run(function($ionicPlatform, $localStorage) {
$ionicPlatform.ready(function() {
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if(window.cordova && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
}
if(window.StatusBar) {
// org.apache.cordova.statusbar required
StatusBar.styleDefault();
}
$localStorage.message = "Hello World";
});
})
參見第三行。 運行功能參數。
只使用localStorage
而不是$localStorage
因為必須注入$localStorage
,而localStorage
在默認情況下是在angularjs
,它的工作原理是無需注入任何東西。 我已經努力了。
$ionicPlatform.ready(function() {
localStorage.message = "whatever";
});
在控制器中:
$scope.message = localStorage.message;
在視圖中:
<div>{{message}}</div>
您忘了這樣聲明$ localStorage變量:
angular.module('app', ['ionic', 'app.controllers', 'app.routes', 'app.services', 'app.directives', 'ngCordova', 'ngStorage'])
.run(function($ionicPlatform, $localStorage) {
$ionicPlatform.ready(function() {
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if(window.cordova && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
}
if(window.StatusBar) {
// org.apache.cordova.statusbar required
StatusBar.styleDefault();
}
$localStorage.message = "Hello World";
});
});
我正在處理離子性離子,並在localStroage中使用了localstorage(簡單的html本地存儲功能)設置值
window.localStorage['Invite-Code'] = $scope.passCode;
上面的代碼在本地存儲中設置值。
var val = window.localStorage['Invite-Code'] || false;
上面的代碼顯示了localstorage值的值(如果存在或不存在),則返回值true或false。 這里的“邀請碼”是關鍵
app.js
var app = angular.module('app', ['ionic', 'app.controllers', 'app.routes', 'app.services', 'app.directives', 'ngCordova', 'ngStorage'])
然后在您的controller.js中,您需要注入$localStorage
:
app.controller('yourController', ['$scope', '$localStorage', function ($scope, $localStorage) {
$scope.data = $localStorage.message;
}]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.