【问题标题】:$localStorage gives value in one state and is undefined in another state$localStorage 在一种状态下给出值,在另一种状态下未定义
【发布时间】:2017-06-04 02:52:05
【问题描述】:

我定义了两个状态 finance.paymentfinance.ppm 其中 finance 已经是一个状态

这是 payment.js 文件

angular.module('erpSaarangFrontendApp')
.config(function ($stateProvider) {
    $stateProvider
      .state('finance.payment', {
        url: '/payments',
        templateUrl: 'views/finance/payment.html',
        controller: 'FinancePaymentCtrl',
        authenticate: true
      });
  })
  .controller('FinancePaymentCtrl',['$scope', '$http','Upload','cloudinary', '$localStorage', '$state', function ($scope, $http, $upload, cloudinary, $localStorage, $state) {

      var config = {
                  headers:{
                    'Authorization' : "Bearer "+ $localStorage.auth_token,
                }
             };

             console.log($localStorage.auth_token);
             }]);

payment.js 的控制台输出是

y1kw3j9lhb7rj4ld8rzwkhe0a9xymwlv

这是 ppm.js 文件

angular.module('erpSaarangFrontendApp')
.config(function ($stateProvider) {
    $stateProvider
      .state('finance.ppm', {
        url: '/prizemoney',
        templateUrl: 'views/finance/ppm.html',
        controller: 'FinancePpmCtrl',
        authenticate: true
      });
  })
  .controller('FinancePpmCtrl',['$scope','$http','Upload','cloudinary','$location','$localStorage','$state', function ($scope, $http, $upload, cloudinary, $localStorage, $state) {
  
          var config = {
                  headers:{
                    'Authorization' : "Bearer "+ $localStorage.auth_token,
                }
             };

             console.log($localStorage.auth_token);
}]);

ppm.js 的控制台输出是

undefined

当我为 payment.js 打印 $localStorage 时,我得到了这个 -

Object { $default: $default(), $reset: $reset(), $sync: $sync(), $apply: $apply(), $supported: $supported(), auth_token: "y1kw3j9lhb7rj4ld8rzwkhe0a9xymwlv", member: Object, _id: 8190 }

但是当我为 ppm.js 打印 $localStorage 时,我得到了这个 -

Object { $$protocol: "http", $$host: "localhost", $$port: 9000, $$parse: LocationHashbangUrl/this.$$parse(), $$compose: LocationHashbangUrl/this.$$compose(), $$parseLinkUrl: LocationHashbangUrl/this.$$parseLinkUrl(), $$path: "/finance/prizemoney", $$search: Object, $$hash: "", $$url: "/finance/prizemoney", 4 more… }

我不明白,$localStorage 是如何变化的?以及为什么在 ppm.js 中未定义 auth_token 而在 payment.js 中有值

【问题讨论】:

    标签: javascript angularjs angular-ui-router local-storage


    【解决方案1】:

    @robin:在 ppm.js 文件中,您在 6 position 注入了 $localStorage,但在函数中它位于 5th position

    函数内部的注入和传递位置应该相同。

    所以,实际上$localStorage 在函数中获取参数实际上是作为$location 传递的

    【讨论】:

    • 啊!谢谢伙计...我不知道我怎么错过了这么小的错误
    • @Robin:很高兴帮助你!如果它真的对你有帮助,你也可以接受这个答案:)
    猜你喜欢
    • 1970-01-01
    • 2022-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-29
    相关资源
    最近更新 更多