2015-05-02 3 views
1

Помогите мне избавиться от ошибки «Непринятая ошибка: [$ injector: modulerr]». Я устал от отладки приложений Angularjs, очень сложно поймать ошибки, я привык к Java, и есть простая ошибка, потому что у меня есть отладчик. Но в случае AngularJS это невозможно. Спасибо большое!

index.html

<!doctype html> 
<html ng-app="customersApp"> 
    <head> 
    <link rel="stylesheet" type="text/css" href="bootstrap/css/bootstrap.css"> 
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script> 
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-route.min.js"></script> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-resource.min.js"></script> 
    <script src="app/controllers/app.js"></script> 
    <script src="app/controllers/customersController.js"></script> 
    </head> 
    <body> 
    <div class="container"> 
     <div ng-view></div> 
    </div> 
    </body> 
</html> 

customers.html

<div class="row"> 
    <h2>Customers</h2> 
    Filter: <input type="text" ng-model="customerFilter.name"> 
    <br><br> 
    <table class="table table-bordered"> 
     <tr class="active"> 
     <th ng-click="doSort('name')">Name</th> 
     <th ng-click="doSort('city')">City</th> 
     <th ng-click="doSort('orderTotal')">Order Total</th> 
     <th ng-click="doSort('joined')">Joined</th> 
     </tr> 
     <tr ng-repeat="cust in customers | filter:customerFilter | orderBy:sortBy:reverse"> 
     <td>{{cust.name}}</td> 
     <td>{{cust.city}}</td> 
     <td>{{cust.orderTotal | currency}}</td> 
     <td>{{cust.joined | date: 'yyyy-MM-dd'}}</td> 
     </tr> 
    </table> 
</div> 

app.js

(function(){ 
    var app = angular.module('customersApp', ['ngRoute']); 
    app.config(function($routeProvider) { 
     $routeProvider 
      .when('/', { 
       controller: 'CustomersController', 
       templateUrl: 'app/views/customers.html' 
      }) 
      .otherwice({redirectTo: '/'}); 
    }); 
})(); 

customersController.js

(function(){ 
    var CustomersController = function($scope) { 
    $scope.sortBy = 'name'; 
    $scope.reverse = false; 
    $scope.customers = [ 
     {joined: '2012-12-02', name: 'John', city: 'Luhansh', orderTotal: 9.99}, 
     {joined: '2012-09-14', name: 'Sergey', city: 'Kyiv', orderTotal: 5.799}, 
     {joined: '2015-11-03', name: 'Denis', city: 'Warsaw', orderTotal: 1.35} 
    ]; 
    $scope.doSort = function(propName) { 
     $scope.sortBy = propName; 
     $scope.reverse = !$scope.reverse; 
    } 
    }; 
    CustomersController.$inject = ['$scope']; 

    angular.module('customersApp') 
    .controller('CustomersController', CustomersController); 

})(); 
+2

первый: используйте нон Минимизированный файл, который будет расширен сообщений об ошибках. во-вторых: я понимаю ваше разочарование, но такие комментарии, как «Я устал от отладки приложений Angularjs», не приветствуются и, скорее всего, уберут потенциальные ответы –

+1

@LiviuT. Я уже решил проблему ... это была опечатка 'otherwice' –

ответ

1

Ваша проблема у вас опечатка в вашем app.js

.otherwice({redirectTo: '/'}); должен быть

(function(){ 
    var app = angular.module('customersApp', ['ngRoute']); 
    app.config(function($routeProvider) { 
     $routeProvider 
      .when('/', { 
       controller: 'CustomersController', 
       templateUrl: 'app/views/customers.html' 
      }) 
      .otherwise({redirectTo: '/'}); 
    }); 
})(); 

Working Plunkr

+1

@ Denis сделать upvote, если это вам помогло, спасибо :) –

+0

Спасибо за ответ! Ты прав! Как обрабатывать и улавливать ошибки в AngularJS? Есть ли лучший способ? – Denis

+0

@Denis вам нужно написать собственный поставщик исключений .., который примет сообщение об ошибке и зарегистрирует их на консоли –

Смежные вопросы