Как внедрить мой сервис в мой контроллер angular js

Я относительно новичок в angular JS, и у меня есть проблема с бета-версией angularJS 1.3.0.

Я пытаюсь вставить свой сервис (автономный модуль) в контроллер.

Это код моего приложения

'use strict';
angular.module('lifecareApp', [
   'lifecareApp.validationServices'
   , 'lifecareApp.loginController'
   , 'lifecareApp.signupController'
]).
config(function ($routeProvider, $locationProvider) {
  $routeProvider.
    when('/account/login', {
      controller: 'loginController'
    }).
    when('/account/signup', {
      controller: 'signupController'
    })
  $locationProvider.html5Mode(true);
});

Это мой сервисный код

'use strict';

angular.module('lifecareApp.validationServices', []).
    factory('validationServices', function () {
    return {
        validateRequiredField: function (value, requiredMessage) {
            if (value){
                return false; //returns false
            }else{
                if (requiredMessage){
                    return requiredMessage;
                }else{
                    return "Required";
                }
            }
        },
        validateEmail: function (value, required, requiredMessage, invalidEmailMessage){
            //validate if its required first
            if (required){
                if (value){
                    //validate the email next
                    var checkEmailRegex = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
                    if (checkEmailRegex.test(value)){
                        return false;
                    }else{
                        if (invalidEmailMessage){
                            return false;
                        }else{
                            return "Invalid Email";
                        }
                    }
                }else{
                    if (requiredMessage){
                        return requiredMessage;
                    }else{
                        return "Required";
                    }
                }
            }
        }
    };

});

Это код моего контроллера

'use strict';

/* Controllers */

angular.module('lifecareApp.loginController', []).
  controller('loginController', ['$scope', 'validationServices' function ($scope, validationServices) {
        $scope.emailError = false;
        $scope.passwordError = false;
        $scope.overallError = false;

        $scope.login = function(){
            var email = $scope.tbEmail;
            var password = $scope.tbPassword;

            var passwordValidation = validationServices.validateRequiredField(password);
            var emailValidation = validationServices.validateEmail(email, true);

            if (emailValidation){
                $scope.emailError = true;
                $scope.valEmail = emailValidation;
            }else{
                $scope.valEmail = "";
                $scope.emailError = false;
            }

            if (passwordValidation){
                $scope.passwordError = true;
                $scope.valPassword = passwordValidation;
            }else{
                $scope.valPassword = "";
                $scope.passwordError = false;
            }


            if (passwordValidation || emailValidation){
                $scope.overallError = true;
                $scope.valError = "Login Error!";
                return;
            }else{
                $scope.overallError = true;
                $scope.valError = "";
            }
        };
  }]);

И я продолжаю получать эту ошибку. Неперехваченная ошибка: [$injector:modulerr] http://errors.angularjs.org/1.3.0-beta.5/$injector/modulerr?p0=lifecareApp&…ngularjs.org%2F1.3.0-beta.5%2F%24injector%2Funpr%3Fp0%3D%2524routeProvider......5 )

Пожалуйста помоги! знак равно

Я также обнаружил, что угловой 1.0.7 не имеет этой ошибки, тогда как последний угловой 1.2.16 и 1.3.0 имеет эту ошибку.


person Shi Wei    schedule 19.04.2014    source источник


Ответы (1)


В ваш основной модуль вам нужно включить ngRoute зависимость с новой версией angularjs

angular.module('lifecareApp',['ngRoute',....

Также не забудьте включить файл сценария маршрута

<script src="angular-route.js">
person Chandermani    schedule 19.04.2014
comment
Я попытался включить angular-route и ngRoute в качестве зависимости, и это все еще дает мне ошибку. docs.angularjs.org/ error/$injector/ Я также проверил правильность написания кода. - person Shi Wei; 19.04.2014
comment
Ok! это была какая-то ошибка на моей стороне, которая вызвала путаницу! Хорошо, это правильно! уууу. Спасибо, бро - person Shi Wei; 19.04.2014