Angular js 无法保存 cookie,而是抛出未定义的错误

Angular js cannot save cookies instead it throw undefined error

您好,我尝试在网络响应后保存在 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 作为模块包含在内。我在这里做错了什么?任何人都告诉我正确的方法。谢谢。

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

angularJs 使用 Named_parameter in DI, you can understand how DI works by this blog post.

当您缩小 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 = {};
};