$ urlRouterProvider.otherwise不是函数

时间:2016-11-03 18:40:03

标签: angular-ui-router

我有 app.js 文件

angular.module('myApp', [
  'myApp.version',
    'ui.router'
]).
config(['$locationProvider','$urlRouterProvider','$stateProvider', function($locationProvider,$stateProvider, $urlRouterProvider, $httpProvider) {

   $urlRouterProvider.otherwise('/view1');
        

  $stateProvider
      .state('view1', {
        url: '/view1',
        templateUrl: 'partials/view1.html'
        //controller: 'view1.MainController'
      })
      .state('view2', {
        url: '/view2',
        templateUrl: 'partials/view2.html'
      })

      .state('view3', {
        url: '/view3',
        templateUrl: 'partials/view3.html'
      })

      .state('view4', {
        url: '/view4',
        templateUrl: 'partials/view4.html'
      });
}]);

我已经在我的index.html文件中加入了“https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.3.1/angular-ui-router.min.js”CDN,并且它正在加载。

但即使加载控制台也会出现错误

由于以下原因导致无法实例化myApp模块: TypeError:$ urlRouterProvider.otherwise不是函数

我尝试删除此行,然后测试代码,但随后它给出了

由于以下原因导致无法实例化myApp模块: TypeError:$ stateProvider.state不是函数

我已多次查看代码,但我无法识别错误/错误。

(角度版本为1.5.8,angular-ui-router版本为0.3.1,如果有帮助的话)

请帮助!

1 个答案:

答案 0 :(得分:2)

您反转了参数:urlRouterProvider和stateProvider。

错误的订单:

config(['$locationProvider', '$stateProvider', '$urlRouterProvider', function($locationProvider, $urlRouterProvider,$stateProvider, $httpProvider) {

正确的顺序:

config(['$locationProvider','$urlRouterProvider','$stateProvider', function($locationProvider, $urlRouterProvider,$stateProvider, $httpProvider) {

您使用该技术来避免缩小问题,但“stringed-names”的顺序必须与函数参数的顺序相同。

我敢打赌,你知道这一点,只是输入错误。