如何在angular js中的工厂/服务中使用$cookie

How to use $cookie in factory/service in angular js?

本文关键字:服务 cookie angular js 工厂      更新时间:2023-09-26

在我正在构建的一个应用程序中,我想在服务中使用$cookie(.factory(…))。

当我使用$cookie时,我会得到$injector/module错误。在这方面有人能帮我吗?

这是我写的代码。

app.factory("AuthenticationService", function($location,$cookies,setUserCreds) 
{
 return {
  login: function(credentials) {
    if (credentials.username == "MyName" || credentials.password == "admin") {
        $cookies.put("userName",credentials.username);          
        $location.path('/home');
   } 
}}});

这是角度文档中的示例:

myApp.factory('apiToken', ['clientId', function apiTokenFactory(clientId) {
  var encrypt = function(data1, data2) {
    // NSA-proof encryption algorithm:
    return (data1 + ':' + data2).toUpperCase();
  };
  var secret = window.localStorage.getItem('myApp.secret');
  var apiToken = encrypt(clientId, secret);
  return apiToken;
}]);

'clientId'是模块知道服务的名称,而您传递给工厂函数的参数是您的工厂知道它的名称。您只有参数。

你的应该是这样的:

app.factory("AuthenticationService",['$location', '$cookies', 'setUserCreds', function($location, $cookies, setUserCreds) {
    ...
}]);

$injector错误通常相当于"您在谈论什么服务?"