【问题标题】:How to use $cookie in factory/service in angular js?如何在 Angular js 中的工厂/服务中使用 $cookie?
【发布时间】:2015-03-20 12:24:28
【问题描述】:

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

当我使用 $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');

   } 
}}});

【问题讨论】:

  • 看起来你没有正确地进行依赖注入。查看答案。

标签: javascript angularjs cookies


【解决方案1】:

这是角度文档中的示例:

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 错误通常相当于“你在说什么服务?”

【讨论】:

  • @freshtoUI 乐于助人。我自己对 Angular 还是很陌生,并且一直在做这样的小事。 =)
猜你喜欢
  • 2016-07-04
  • 1970-01-01
  • 1970-01-01
  • 2014-07-09
  • 1970-01-01
  • 2019-12-26
  • 2013-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多