服务:
app.service('myService', ['$scope', '$timeout', function($scope, $timeout){
return {
fn: function(messageTitle, messageContent) {
$timeout(function() {
$scope.fadeMessageSuccess = true;
}, 3000);
}
}
}]);
控制器:
app.controller("AccountCtrl", ["$scope", "Auth", "$timeout", "myService",
function($scope, Auth, $timeout, myService) {
myService.fn();
$scope.createUser = function() {
$scope.message = null;
$scope.error = null;
// Create a new user
Auth.$createUserWithEmailAndPassword($scope.accountEmailAddress, $scope.accountPassword)
.then(function(firebaseUser) {
$scope.message = "User created with uid: " + firebaseUser.uid;
console.log($scope.message);
}).catch(function(error) {
$scope.error = error;
console.log($scope.error);
});
};
}
]);
我正在尝试创建一个服务,以便我可以在多个控制器中使用一个功能,但我很难让第一个工作。这是我在控制台中收到的错误消息:
angular.js:13550Error: [$injector:unpr]
答案 0 :(得分:0)
只是一个观察:当你打电话时,看起来你没有把任何东西传递给这个功能。并且不确定您是否想要为服务添加更多功能,但我认为您可以直接返回该功能并只调用“myService(title,content);”。但我不认为这些问题会导致你遇到的问题。
答案 1 :(得分:0)
当您尝试使用.factory()
时,看起来您正在尝试返回一个对象(一个.service()
函数)。 Here is a dead simple explanation for .factory, .service, and .provider
正如user2341963所指出的,将$scope
注入服务并没有多大意义。
此外,您确定所有依赖项都已定义并可供Angular使用吗?
Here is an example Plunkr在控制器中使用服务。