Получение ошибки при использовании ngRoute в Angular.js

0

Я получаю следующую ошибку при использовании Angular.js в своем приложении.

Ошибка:

angular.js:38Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.4.6/$injector/modulerr?p0=app&p1=Error%3A%20%…oudflare.com%2Fajax%2Flibs%2Fangular.js%2F1.4.6%2Fangular.min.js%3A41%3A35)

Я объясняю свой код ниже.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" ng-app="app">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>DEMO</title>
<link href="bootstrap.min.css" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.6/angular.min.js" type="text/javascript"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.6/angular-route.js"></script>
<script src="angularuirouter.js" type="text/javascript"></script>
</head>

<body>
<a href="#/visitplace">I want to go for a trip</a>
<div ng-view></div>
<script src="script.js"></script>
</body>
</html>

script.js:

"use strict";
var app = angular.module( "app",[],function( $routeProvider ) {
  $routeProvider.when( "/visitplace", {
    templateUrl: "placetovisit.html",
    controller: "TourCoordinatorCtrl",
    resolve: {
      "accommodation": function( $q, $timeout ) {
        var myFriend = $q.defer();
        $timeout(function(){
          myFriend.resolve({
            hotelName: function( ) {
              return "My Friend friend hotel";
            },
            roomNo: function( ) {
              return "404";
            }
          });
        },5000);
        return myFriend.promise;
      }
    }
  });
} );
app.controller( "TourCoordinatorCtrl", function( $scope, accommodation ) {
  $scope.name = "Shidhin";
  $scope.place = "Switzerland";
  $scope.hotel = accommodation.hotelName( );
  $scope.roomno = accommodation.roomNo( );
} );

Пожалуйста, помогите мне решить эту ошибку.

  • 0
    попробуйте установить маршрут в .config вместо определения модуля
  • 0
    Попробуйте ввести $routeProvider в определение модуля, например var app = angular.module( "app",[$routeProvider]
Показать ещё 1 комментарий
Теги:
angularjs-ng-route

4 ответа

1
Лучший ответ

Вы не ввели модуль ngRoute в свое приложение. Вот почему вы получаете ошибку инжектора.

Вы должны определить свое приложение, как это (например):

var app = angular.module( "app", ['ngRoute']);

Затем настройте поставщика маршрута.

1

Отсутствует инъекция ngRoute на ваш основной модуль.

angular.module('app', ['ngRoute'])
0

Предыдущие ответы верны, но это также может произойти, если вы НЕ включаете файл Controller. Пример ниже показан в строке 60, я прокомментировал файл контроллера, но в строке 13 я фактически ссылался на AppCtrl. Если я раскомментирую строку 60, ошибка исчезнет.

Изображение 174551

Вот что вы увидите на консоли:

Изображение 174551

0

angular.module("app", []). config (["$ stateProvider", "$ urlRouterProvider", функция ($ stateProvider, $ urlRouterProvider) {url routeprovider}])

Ещё вопросы

Сообщество Overcoder
Наверх
Меню