Как да инжектирам моята услуга в моя контролер angular js

Аз съм сравнително нов в angular JS и имам проблем с angularJS 1.3.0 beta build

Опитвам се да вмъкна моята услуга (самостоятелен модул) към контролер.

Това е кодът на моето приложение

'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 )

Моля помогнете! =(

Открих също, че angular 1.0.7 няма тази грешка, докато най-новите angular 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
Добре! това беше някаква грешка от моя страна, която причиняваше объркването! Добре, правилно е! уауу. Благодаря братле - person Shi Wei; 19.04.2014