У меня есть часть моего приложения angular, на которое я привязал контроллер, 
с тех пор я получил аргумент "fn" не является функцией Error, может ли кто-нибудь просмотреть мой код и объяснить, почему я получил эту ошибку?
Я был бы очень благодарен:)
HTML-разметка:
        <section class="col-lg-12" data-ng-controller="MessageController">
            <fieldset>
                <legend>{{ 'MESSAGES' | translate }}</legend>
            </fieldset>
            <div class="margin-left-15">
                <ul class="list-style-button">
                    <li data-ng-repeat="message in MSG">{{ message }}</li>
                </ul>
            </div>
        </section>
контроллер:
(function () {
'use strict';
var controllers = angular.module('portal.controllers');
controllers.controller('MessageController',['$scope','MessageService','$rootScope', function MessageController($scope, MessageService, $rootScope){
    $rootScope.MSG = MessageService.getMessages();
    $rootScope.$watch('MSG', function(newValue){
        $scope.MSG = newValue;
    });
 }]);
}());
Услуги:
(function(){
'use strict';
var messageServices = angular.module('portal.services');
messageServices.factory('MessageService', ['MessageData','localStorageService', 'UserService'], function(MessageData, localStorageService, UserService){
    return new MessageService(MessageData, localStorageService, UserService);
});
function MessageService(MessageData, localStorageService, UserService){
    this.messageData = MessageData;
    this.localStorageService = localStorageService;
    this.userService = UserService;
}
MessageService.prototype.getMessages = function(){
    var locale = this.userService.getUserinfoLocale();
    var messages = this.localStorageService.get(Constants.key_messages+locale);
    if(messages !== null && messages !== undefined){
        return JSON.parse(messages);
    } else {
        return this.messageData.query({locale: locale}, $.proxy(function(data, locale){
            this.save(Constants.key_messages+locale, JSON.stringify(data));
        }, this));
    }
};
MessageService.prototype.save = function(key, value){
    this.localStorageService.add(key, value);
};
}());
Данные:
(function(){
'use strict';
var data = angular.module('portal.data');
data.factory('MessageData', function($resource){
    return $resource(Constants.url_messages,{},{
        query: {method: 'GET', params: {locale: 'locale'}, isArray: true}
    });
});
}());
порядок js файлов в html-заголовке:
<script src="js/lib/jquery-1.10.js"></script>
<script src="js/lib/angular.js"></script>
<script src="js/lib/angular-resource.js"></script>
<script src="js/lib/angular-translate.js"></script>
<script src="js/lib/angular-localstorage.js"></script>
<script src="js/lib/jquery-cookies.js"></script>
<script src="js/lib/bootstrap.js"></script>
<script src="js/portal.js"></script>