переход с ngRoute на ui.router

У меня проблема с переходом с ngroute на ui.router:

используя ngroute, у меня есть пара угловых файлов:

модуль.js

angular.module('betTogether', ['ngRoute']);

маршрут.js

angular.module('betTogether').config(['$routeProvider',
    function (
        $routeProvider
    ) {
          $routeProvider.
              when('/descriptionBets', {
                  templateUrl: 'descriptionBets',
                  controller: 'descriptionBetsCtrl'
              }).
              when('/normalBets', {
                  templateUrl: 'normal',
                  controller: 'normalBetsCtrl'
              }).
              when('/addBet', {
                  templateUrl: 'addBet',
                  controller: 'addBetCtrl'
              }).
              otherwise({
                  redirectTo: '/descriptionBets'
              });
}]);

нормальные ставки.js

angular.module('betTogether').controller('normalBetsCtrl', [
'$scope','$http',

function($scope,$http){

    $scope.typeBetsImages = [{link: "images/basketball.png", title:"basketball"},
                {link: "images/tenis.png", title: "tenis"},
                {link: "images/volleyball.png", title: "volleyball"},
                {link: "images/football.png", title:"football"}
    ];

    $http.get("/normalBets").success(function(data){
        $scope.normalBets = data;
    });

}]);

...и остальные контроллеры. И все работает нормально. Теперь я хочу перейти на ui-router. поэтому я меняю module.js и route.js следующим образом:

модуль.js

angular.module('betTogether', ['ui.router']);

маршрут.js

angular.module('betTogether').config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider){
                // For any unmatched url, send to /business
                $urlRouterProvider.otherwise("/descriptionBets")

                $stateProvider
                        .state('descriptionBets', {//State demonstrating Nested views
                            url: "/descriptionBets",
                            templateUrl: "descriptionBets",
                            controller: "descriptionBetsCtrl"
                        })
                        .state('normalBets', {//nested state [products is the nested state of business state]
                            url: "/normalBets",
                            templateUrl: "normal",
                            controller: "normalBetsCtrl"
                        })
                        .state('addBet', {//nested state [services is the nested state of business state]
                            url: "/addBet",
                            templateUrl: "addBet",
                            controller: "addBetCtrl"
                        });

            }]);

и это не работает. у меня ошибка:

Error: [$injector:nomod] http://errors.angularjs.org/1.3.10/$injector/nomod?p0=betTogether angular.min.js:6:417

... и это для 1-й линии каждого контроллера.

Кто-нибудь может мне помочь?

PS: извините за мой английский, надеюсь, вы все понимаете.


person K.Dzien    schedule 29.01.2017    source источник


Ответы (1)


Проверьте порядок импорта <script> в файле index.html. Скорее всего, вы включили модуль ui-router после модуля betTogether, тогда как он должен стоять перед ним, потому что betTogether зависит от ui.router.

person Matthew Cawley    schedule 29.01.2017
comment
я поставил скрипты angular и ui-router в начало импорта - все работает. Итак, большое спасибо :) - person K.Dzien; 29.01.2017