3

我正在尝试$stateProvider用于我的 url 路由。我想,如果我使用$stateProvider,那么我就不需要使用$routeProvider。这个对吗?我能够让我的 url 路由使用$routeProvider,但我无法让我的 url 路由使用$stateProvider。这是我到目前为止的代码:

var app = angular.module("app",['ui.state']);
app.config(function($urlRouterProvider, $stateProvider, $locationProvider) {

$urlRouterProvider.otherwise("/home") 

$stateProvider
    .state('home', {
        url: "/home",
        controller: 'HomeCtrl',
        views: {
            main: { templateUrl: "views/home/main.html" }
            sub: { templateUrl: "views/home/sub.html" }
        }
    })
    .state('products/info', {
        url: "/products/info",
        controller: 'ProductsCtrl',
        views: {
            main: { templateUrl: "views/products/main.html" },
            sub: { templateUrl: "views/products/info/sub.html" } 
        }
    })
    .state('products/reviews', {
        url: "/products/reviews",
        controller: 'ProductsCtrl',
        views: {
            sub: { templateUrl: "views/products/reviews/sub.html" } 
        }
    })

在我的“shell”html页面上,我有以下内容:

<div class="main">
    <div ui-view="main"></div>
    <div ui-view="sub"></div>
</div>

当我访问我的任何网址时,我只会看到 shell html 页面。没有任何东西被加载到我ui-view的 's 中。我错过了什么?

4

3 回答 3

2

在这里,您的状态类型 'products/reviews' 错误,应该是 'products.reviews'

于 2016-08-01T07:10:34.433 回答
1

这个页面解释了它:AngularJS State Management with ui-router

于 2013-07-16T05:34:40.183 回答
1

依赖名称是“ui.router”而不是“ui.state”

于 2016-05-01T13:00:53.727 回答