0
這可能是我沒有正確處理依賴注入的問題,但我正在嘗試爲我的SessionsController提供「會話」服務。這裏是我的SessionsController:在AngularJS中爲我的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();
};
}]);
這裏的實際會話服務定義:
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:"[email protected]", 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的模塊。
有趣。現在,當我這樣做,我得到'錯誤:未知的提供者:UserSessionProvider'。但我想這是一個單獨的問題。 – randombits
在這種情況下,這意味着您正嘗試使用UserSession服務,但您尚未創建它。我想你也會遇到與UserRegistration一樣的問題。我會爲您提供一個指向文檔的鏈接,但它現在似乎已經停止。但是你需要創建角度服務和注入角度服務(或理解依賴注入)部分。 – Oliver