javascript - 将 Angular-Route 重构为 Angular-UI-Router

标签 javascript html angularjs

我使用 ngRoute 创建了一个单页面应用程序,如下所示:

index.html(ngRoute)

var smallTalkzModel = angular.module('smallTalkzModel', ['ngRoute']);
smallTalkzModel.config(function($routeProvider) {

    $routeProvider
    .when('/', {
      templateUrl : 'components/login/loginView.html',
      controller  : 'loginController'
    }) 
    .when('/chat', {
      templateUrl : 'components/chat/chatView.html',
      controller  : 'chatController'
    });
  }).run(function ($rootScope) {

    // App is loading, so set isAppLoading to true and start a timer
    console.log($rootScope);
    $rootScope.isAppLoading = true;

  });;

small-talkz.model.js(ngRoute)

 <div ng-app="smallTalkzModel" >
    <div ng-view>
    </div>

 </div>

然后我听说最好使用 ui.router,因为它是一个第三方,具有更多功能,可以完成 ngRoute 所做的一切,甚至更多,并且将在未来版本的 Angular js 中得到支持...

所以,我尝试将我的代码重构为下面的代码。这不起作用...

谁能告诉我为什么?我没有使用 ng-surf 因为我的 html 中没有任何链接。我通过 localhost:3000/somePage 而不是通过导航到达它们...

index.html(ui.路由器)

<div ng-app="smallTalkzModel" class="loader">
    <div ui-view>
    </div>
</div>

small-talkz.model.js(ui.router)

var smallTalkzModel = angular.module('smallTalkzModel', ['ui.router']);
smallTalkzModel.config(function($stateProvider, $urlRouterProvider) {

  $stateProvider
  .state('login', {
    url: '/',
    templateUrl : 'components/login/loginView.html',
    controller  : 'loginController'
  }) 
  .state('chat', {
    url: '/chat',
    templateUrl : 'components/chat/chatView.html',
    controller  : 'chatController'
  });
});;

最佳答案

期望您已将库 ui-router.js 包含在您的项目中。代码看起来不错。我认为可能引起问题的一件事是,当您定义的任何状态都不与应用程序的状态匹配时,定义路由。使用其他选项,如下所示:

$urlRouterProvider.otherwise('/');

代码应如下所示:

smallTalkzModel.config(function($stateProvider, $urlRouterProvider) {

  $stateProvider
  .state('login', {
    url: '/',
    templateUrl : 'components/login/loginView.html',
    controller  : 'loginController'
  }) 
  .state('chat', {
    url: '/chat',
    templateUrl : 'components/chat/chatView.html',
    controller  : 'chatController'
  })
  $urlRouterProvider.otherwise('/');

});

关于javascript - 将 Angular-Route 重构为 Angular-UI-Router,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38829990/

相关文章:

javascript - 不懂这个JS

html - 为什么透视会改变 CSS 中的固定位置?

Javascript/jquery setTimeout 变得更快

javascript - Safari 不会在溢出的 SVG 内容上发出指针事件

javascript - 如何在 Spring Boot 中的提交表单中将变量传递给 Controller ​​?

javascript - 在 Javascript 和/或 jQuery 中,如何在包装的 div 中获取第一行文本

javascript - JS中切换div问题

angularjs - AngularJS 如何在 ng-repeat 中 $watch 这些案例?

javascript - Angularjs ng-show == ID?

javascript - 用于附加侧边栏的 Angular 指令