У меня есть часть моего приложения 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>