gpt4 book ai didi

javascript - 在 AngularJS 中为我​​的 SessionsController 提供 session 服务

转载 作者:行者123 更新时间:2023-12-02 18:29:29 27 4
gpt4 key购买 nike

这可能是我没有正确处理依赖注入(inject)的问题,但我正在尝试为我的 SessionsController 提供“ session ”服务。这是我的 SessionsController:

angular.module('App.controllers').controller('SessionsController', ['$scope', '$location', '$cookieStore', 'Session', function($scope, $location, $cookieStore, Session) {

$scope.foo = function() {
console.log("clicked foo..");
}

$scope.session = Session.userSession;


$scope.create = function() {

if ( Session.signedOut ) {
$scope.session.$save()
.success(function(data, status, headers, config) {
$cookieStore.put('_app_user', data);
});
}

};

$scope.destroy = function() {
$scope.session.$destroy();
};


}]);

这是实际的 session 服务定义:

angular.module('App.services').service('Session',[ '$cookieStore', 'UserSession', 'UserRegistration', function($cookieStore, UserSession, UserRegistration) {
this.currentUser = $cookieStore.get('_app_user');
this.signedIn = !!$cookieStore.get('_app_user');
this.signedOut = !this.signedIn;
this.userSession = new UserSession( { email:"foo@bar.com", password:"example", remember_me:true } );
//this.userRegistration = new UserRegistration( { email:"foo-" + Math.floor((Math.random()*10000)+1) + "@bar.com", password:"example", password_confirmation:"example" } );

$rootScope.$on('$routeChangeStart', function (current, next) {
if (this.signedOut && next !== '/login') {
console.log("relocating user..");
//$location('/login');
}});

}]);

这是我如何将它们串在一起的:

angular.module('App.resources', ['ngResource']);
angular.module('App.services', ['ngResource']);
angular.module('App.directives', []);
angular.module('App.filters', []);
angular.module('App.controllers', ['ngCookies', 'Session']);

var App = angular.module("App", ['App.resources', 'App.services', 'App.directives', 'App.filters', 'App.controllers', 'ui.compat', '$strap.directives', 'templates']);

显然缺少一些将所有内容连接在一起的东西,因为 Firebug 提示没有名为:Session 的模块。

最佳答案

Firebug 是对的,你没有名为 session 的模块。您在 App.services 模块中有一个名为 Session 的服务。

只需删除 session 模块注入(inject),就可以了。

angular.module('App.controllers', ['ngCookies']);

关于javascript - 在 AngularJS 中为我​​的 SessionsController 提供 session 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17974121/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com