我创建了一个名为notifier
的服务,如果用户成功登录,则使用toastr
在登录过程中提醒用户。
这是我的登录模块:
var login = angular.module('login',[]);
login.controller('mvLoginCtrl', function($scope, $http){
$scope.signin = function(username, passowrd){
$http.post('/login', {username:username, passowrd:passowrd}).then(function(response){
if(response.data.success){
mvNotifier.notify('You have successfully signed in!');
}else{
mvNotifier.notify('Username/Password combination incorrect');
}
})
}
})
直到这里我没有错误但是当我尝试登录时我得到了这个明显的错误:
ReferenceError:未定义mvNotifier
我在第2行更改了我的登录模块,包括所需的依赖项:
login.controller('mvLoginCtrl', function($scope, $http, mvNotifier)
然后我得到了不同的错误
错误:[$ injector:unpr] http://errors.angularjs.org/1.2.20/ $注射器/ unpr?P0 = mvIdentityProvider%20%3 C-%20mvIdentity
我想问一下我得到这个错误的原因是什么以及如何解决它。 这是我的mvNotifier模块代码:
var notifier = angular.module('notifier', []);
notifier.value('mvToastr', toastr);
notifier.factory('mvNotifier', function(myToastr){
return{
notify: function(msg){
mvToastr.success(msg);
console.log(msg);
}
}
})
谢谢。
答案 0 :(得分:1)
你需要注入myNotifier,如下所示:
var login = angular.module('login',['notifier']);
login.controller('mvLoginCtrl', ['$scope','$http','mvNotifier',function($scope, $http,mvNotifier){
$scope.signin = function(username, passowrd){
$http.post('/login', {username:username, passowrd:passowrd}).then(function(response){
if(response.data.success){
mvNotifier.notify('You have successfully signed in!');
}else{
mvNotifier.notify('Username/Password combination incorrect');
}
})
}
}])
答案 1 :(得分:1)
您需要在登录模块中添加通知程序模块作为依赖项。
var login = angular.module('login',["notifier"]);
然后这应该有用。
login.controller('mvLoginCtrl', function($scope, $http, mvNotifier)
修改: DEMO