AngularJS UI路由器未进入默认状态

AngularJS UI-Router not getting to default state

本文关键字:默认 状态 UI 路由器 AngularJS      更新时间:2023-09-26

就我的一生而言,我无法在index.html的ui视图中加载任何内容。我在另一个项目中使用AngularJS/Ui路由器&它起作用了。这就是我目前项目中的所有内容。

当我把ng-controller='ResumeCtrl'放在<span>上时,它就起作用了。

我在控制台中没有收到任何错误,但我确实看到了我的App Loaded [ null ]控制台.log。

我看了至少10个不同的ui路由器教程&我真的简化了这一点,没有任何进展。在过去的12个小时里,我一直在看这个,我可能错过了一些非常小的东西,但在这一点上,我没有看到

这是我的JSFiddle:https://jsfiddle.net/L5csekpq/2/

index.html:

<body ng-app="wmApp">
    <h1>WM TEST</h1>
    <div><a href="#/resume">Resume</a></div>
    [<span ui-view></span>]
    <script type="application/javascript" src="/lib/lib.js"></script>
    <script type="application/javascript" src="/wm.js"></script>
</body>

lib.js是弓箭手加载的angular.js(1.5.5)/angular-ui-route.js(0.2.18)的凹陷/缩小

这是我所有JS文件的grunt concat,上面链接为wm.JS:

angular.module('wmApp', [
    'ui.router',
    'wmApp.wmConstants',
    'wmApp.ResumeController'
])
.run(['$rootScope', '$location', '$state', function (
    $rootScope,
    $location,
    $state
) {
    console.log ('App Loaded [', $location.state(), ']');
    $rootScope.$on("$stateChangeError", console.log.bind(console));
}])
;
angular.module('wmApp.wmStates', [])
.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) {
  $stateProvider
      .state('home', {
        url: '/home',
        template: '<h3>STATE SUCCESSFUL</h3>'
      })
      .state('resume', {
        url: '/resume',
        template: '<h3>{{ data }}</h3>',
        controller: 'ResumeCtrl'
      })
  ;
  $urlRouterProvider.otherwise('/home');
}])
.run(['$state', function($state) {
  console.log('Current State: ', $state.current);
}])
;

angular.module('wmApp.wmConstants', [])
.constant('wmConstants', {
  sample: {
    api: {
      url: 'http://api.sample.com',
      key: 'xxxxxx' 
    }
  }
});
angular.module('wmApp.ResumeController', [])
.controller('ResumeCtrl', ['$scope', 'wmConstants', function($scope, wmConstants) {
  console.log('ResumeCtrl', wmConstants.sample.api.url);
  $scope.data = 'omg data';
}]);

您的问题是忘记将模块wmApp.wmStates声明为主应用程序模块所需。

此:

angular.module('wmApp', [
    'ui.router',
    'wmApp.wmConstants',
    'wmApp.ResumeController'
])

应该是这样的:

angular.module('wmApp', [
    'ui.router',
    'wmApp.wmStates',
    'wmApp.wmConstants',
    'wmApp.ResumeController'
])