0

我创建了一个名为notifierthat use的服务,用于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/$injector/unpr?p0=mvIdentityProvider%20%3C-%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);
            }
        }
    })

谢谢你。

4

2 回答 2

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');
                }
            })
        }
    }])

更多关于依赖注入

于 2014-08-09T03:29:11.103 回答
1

您需要在登录模块中添加通知模块作为依赖项。

var login = angular.module('login',["notifier"]);

那么这应该工作。

login.controller('mvLoginCtrl', function($scope, $http, mvNotifier) 

编辑: 演示

于 2014-08-09T03:32:00.370 回答