簡體   English   中英

角度-本地存儲不起作用

[英]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.

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