2013-10-11 2 views
0

Я сделал угловую архитектуру приложения, как и в других проектах рельсов:Угловые с рельсами архитектурой не работает

'use strict' 

angular.module('BookReader.services', ['ngResource']) 
angular.module('BookReader.directives', []) 
angular.module('BookReader.controllers', ['ngCookies', 'ngRoute']) 

BookReader = angular.module('BookReader', ['ngRoute', 'BookReader.controllers', 'BookReader.services', 'BookReader.directives']) 

BookReader.config(['$routeProvider', '$httpProvider', '$locationProvider', ($routeProvider, $httpProvider, $locationProvider) -> 
    $routeProvider 
    .when '/', 
     templateUrl: 'view/tour.html' 
     controller: 'MainCtrl' 
    .when '/home', 
     templateUrl: 'view/main.html' 
     controller: 'HomeCtrl' 
    .when '/books', 
     templateUrl: 'view/books.html' 
     controller: 'BooksCtrl' 
    .otherwise 
     redirectTo: '/' 
]) 

Но это происходит ошибку для всех контроллеров. Я пробовал разные способы, но он работает только в одном файле.

Argument 'MainCtrl' is not a function, got undefined 

Chrome консоль:

Error: [ng:areq] http://errors.angularjs.org/undefined/ng/areq?p0=MainCtrl&p1=not%20a%20function%2C%20got%20undefined 
    at Error (<anonymous>) 
    at http://localhost:3000/assets/angular/angular.min.js?body=1:7:453 
    at qb (http://localhost:3000/assets/angular/angular.min.js?body=1:19:170) 
    at Ia (http://localhost:3000/assets/angular/angular.min.js?body=1:19:257) 
    at http://localhost:3000/assets/angular/angular.min.js?body=1:59:137 
    at http://localhost:3000/assets/angular-route/angular-route.min.js?body=1:8:9 
    at http://localhost:3000/assets/angular/angular.min.js?body=1:41:424 
    at s (http://localhost:3000/assets/angular-route/angular-route.min.js?body=1:7:378) 
    at h.$broadcast (http://localhost:3000/assets/angular/angular.min.js?body=1:108:417) 
    at http://localhost:3000/assets/angular-route/angular-route.min.js?body=1:11:443 

MainCtrl:

'use strict' 

angular.module('BookReader.controllers', ['ngRoute', 'ngResource', 'ngCookies']) 
    .controller('MainCtrl', ['$scope', '$http', '$cookies', ($scope, $http, $cookies) -> 
    console.log("works") 
    ]) 

Возможно, что-то меняется в угловой версии 1.2, или я не могу видеть очевидную ошибку.

+0

И что это ошибка, что происходит? Вы ожидаете, что люди здесь смогут получить весь проект, чтобы воспроизвести ошибку? – Filburt

+0

Упс, извините, обновление сейчас. – zishe

+0

В сообщении об ошибке указано все: '' BooksCtrl 'не является функцией' –

ответ

3

Я назвал модули контроллера по-разному и включил их в приложение, что было очевидно, я думаю.

Контроллер

angular.module('books', ['ngRoute', 'ngResource', 'ngCookies']) 
... 

App

BookReader = angular.module('BookReader', ['ngRoute', 'home', 'main', 'exercises', 'books']) 

BookReader.config(['$routeProvider', '$httpProvider', '$locationProvider', ($routeProvider, $httpProvider, $locationProvider) -> 
... 
Смежные вопросы