1

我为我的应用程序使用ngstorage卫星角度模块。但我对存储前缀配置有疑问。

对于ngstorage

  • 它将数据保存为:NGSTORAGE_PREFIXkey = value
  • 默认前缀是:'ngStorage-'

对于卫星器

  • 它将数据保存为:SATELLIZER_PREFIX_key = value
  • 默认前缀是:'satellizer',键前有附加下划线 (_)

我们知道,在$auth.login()令牌被保存到 localStorage之后satellizer_token = SOME_TOKEN

我想使用 ngstorage 进行 localStorage 的所有操作,特别是我需要访问satellizer_token之前保存到 localStorage 的内容。为此,我需要为两个模块设置相同的前缀,如下面的代码所示

应用程序.js

var app = angular.module('App', [
    'satellizer',
    'ngStorage'
])

.config(function($authProvider, $localStorageProvider) {

    // Local Storage config
    $localStorageProvider.setKeyPrefix('myprefix_');

    // Auth Provider config
    $authProvider.tokenPrefix = 'myprefix_';
});

控制器.js

app.controller('MyCtrl', function($scope, $localStorage) {

    // Storage
    $scope.$storage = $localStorage;

    // Set some data
    $scope.$storage.mykey = myvalue;

    // other code...
});

视图.js

<div ng-controller="MyCtrl">
    {{$storage.mykey}}
    {{$storage._token}}
<div>

$auth.login()视图编译好后,显示$storage.mykey值(即myvalue),但没有$storage._token。但是重新加载页面后,视图根本没有编译,并显示

{{$storage.mykey}}
{{$storage._token}}

似乎有些冲突。

你对这个问题有什么解决方案?谢谢。

4

0 回答 0