将$ routeProvider与$ stateProvider一起使用

paw*_*977 9 angularjs angular-ui-router

一开始我只是使用$ routeProvider如下,它给了我想要的东西.

angular.module('angularProject', ['angularProject.filters', 'angularProject.services', 'angularProject.directives', 'angularProject.controllers'])
  .config(['$routeProvider', function($routeProvider) {
    $routeProvider
      .when('/home', {
        title: 'Home',
        templateUrl: 'partials/home.html',
        controller: 'homeCtrl'
      })
      .otherwise({redirectTo: '/home'});
  }]);
Run Code Online (Sandbox Code Playgroud)

但是当我也想使用$ stateProvider时,它不会给我错误但也不允许我改变状态..

var myapp=angular.module('angularProject', ['ui.bootstrap','ui.router','angularProject.filters', 'angularProject.services', 'angularProject.directives', 'angularProject.controllers'])
  myapp.config(['$routeProvider', '$stateProvider',function($routeProvider,$stateProvider) {
    $routeProvider
      .when('/home', {
        title: 'Home',
        templateUrl: 'views/home.html',
        controller: 'homeCtrl'
      })
      .otherwise('/home');
    $stateProvider
        // .state('index', {
            // url: "",
            // views: {
                // "viewA": {
                    // template: "index.viewA"
                // },
                // "viewB": {
                    // template: "index.viewB"
                // }
            // }
        // })
        .state('route1', {
            url: "/route1",
            views: {
                "viewA": {
                    template: "route1.viewA"
                },
                "viewB": {
                    template: "route1.viewB"
                }
            }
        })
        .state('route2', {
            url: "/route2",
            views: {
                "viewA": {
                    template: "route2.viewA"
                },
                "viewB": {
                    template: "route2.viewB"
                }
            }
        })
     // .otherwise({redirectTo: '/home'});
  }]);
Run Code Online (Sandbox Code Playgroud)

任何有关如何使用$ stateProvider与$ routeProvider的帮助将不胜感激..

gio*_*_13 10

我不认为这是可能的,我不认为这ui.router是为了使用而构建的ngRoute.
根据ui-router文档,您应该使用ui-router自己的实现$routeProvider,称为$urlRouterProvider.

  • 大多数都是正确的:它们并不打算一起使用,但是,`ui.router`将`$ routeProvider`作为其兼容层的一部分公开,以便在从`ngRoute`迁移时使用.`$ urlRouterProvider`*是*用于管理URL,但主要仅用于重定向和`otherwise()`(catch-all)URL. (3认同)