-1

嗨,我尝试在网络响应后保存在 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 = {};
    };
}]);

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

4

1 回答 1

1

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

angularJs 在 DI 中使用Named_pa​​rameter ,您可以通过这篇博文了解 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 = {};
};
于 2018-02-08T13:49:38.110 回答