【问题标题】:Angular js cannot save cookies instead it throw undefined errorAngular js无法保存cookie而是抛出未定义的错误
【发布时间】:2018-07-19 02:07:58
【问题描述】:

您好,我尝试在网络响应后保存在 cookie 中。这是我的代码

angular.module('myApp').controller('SignInController',['WebService',function(WebService, $cookies){
    this.formData = {};
    this.signIn = function(formData){
        WebService.login(formData).then(function successCallback(data){
            //console.log("Success callback:"+JSON.stringify(data));
            var response = data.data;
            var message = response['message'];
            if (message == 'Success') {
                $cookies.put("id", response['id']); 
                $cookies.put("number", response['number']); 
            }else{

            }

            console.log('Message:'+message+" id:"+ $cookies.get('id'));
        },function errorCallback(error){
            console.log("Error"+JSON.stringify(error));
        });
        this.formData = {};
    };
}]);

我在创建主要 Angular 模块时将 ngCookies 作为模块包含在内。我在这里做错了什么?任何人都告诉我正确的方法。谢谢。

【问题讨论】:

  • 修复您的注射:['WebService', '$cookies',function(WebService, $cookies)
  • ,['WebService',function(WebService, $cookies) - 在 'Webservice' 之后添加 '$cookies' 怎么样?
  • 谢谢你 Aleksey Solovey :)

标签: angularjs angular-cookies


【解决方案1】:

包含所有参数的所有字符串的数组是在代码缩小后处理依赖注入 (DI) 的好方法。

angularJs在DI中使用Named_parameter,你可以通过this blog post了解DI是如何工作的。

当您缩小 angularJs 文件时,($http, $scope) 转换为 (a, b),DI 无法理解它们。
$inject 是我推荐的处理这种情况的方法。它看起来很干净。 (个人意见,可能会有所不同)。 并尝试编写易于维护的代码。

var app = angular.module('myApp', []);
SignInController.$inject = ['WebService', '$cookies'];
app.controller('SignInCtrl', SignInController);

function SignInController(WebService, $cookies){
  this.formData = {};
  this.signIn = signIn;

  function signIn(formData) {
    WebService.login(formData)
      .then(successCallback, errorCallback);

    function errorCallback(error){
        console.log("Error"+JSON.stringify(error));
    }

    function successCallback(data){
       var response = data.data;
       var message = response['message'];
       if (message == 'Success') {
         $cookies.put("id", response['id']); 
         $cookies.put("number", response['number']); 
       }
    }
    this.formData = {};
};

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-15
  • 2015-02-17
  • 1970-01-01
  • 1970-01-01
  • 2019-07-17
  • 2012-06-13
  • 1970-01-01
相关资源
最近更新 更多