如何在 angular js 中使用 factory/service 中的 $cookie?

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

在我正在构建的应用程序之一中,我想在服务中使用 $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');

   } 
}}});

这是 angular 文档中的示例:

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 错误通常等于 "What service are you talking about?"