Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 角度ui路由器嵌套视图路由器不工作_Angularjs_Angular Ui Router - Fatal编程技术网

Angularjs 角度ui路由器嵌套视图路由器不工作

Angularjs 角度ui路由器嵌套视图路由器不工作,angularjs,angular-ui-router,Angularjs,Angular Ui Router,为什么这条路线不起作用?如何强制此代码工作?如何在angular ui路由器中实现布局工作?请帮助解决这个问题 $stateProvider .state( 'layout', { abstract: true, url: '', views: { 'layout': { templateUrl: 'template/layout.html' }, 'header': {

为什么这条路线不起作用?如何强制此代码工作?如何在angular ui路由器中实现布局工作?请帮助解决这个问题

$stateProvider
    .state( 'layout', {
        abstract: true,
        url: '',
        views: {
            'layout': { templateUrl: 'template/layout.html' },
            'header': {
                templateUrl: 'template/header.html',
                controller: 'HeaderController'
            },
            'sidebar': { templateUrl: 'template/sidebar.template.html' }
        }
    } )
    .state( 'layout.home', {
        url: '/',
        views: {
            'main@layout.home': { templateUrl: 'template/main.html' }
        }
    }
);
layout.html

<main class="layout">
    <div ui-view="header"></div>
    <div class="main">
        <div class="container">
            <div class="row">
                <div class="col-md-9">
                    <div class="content">
                        <div ui-view="main"></div>
                    </div>
                </div>
                <div class="col-md-3">
                    <div ui-view="sidebar"></div>
                </div>
            </div>
        </div>
    </div>
</main>

index.html

<div ui-view="layout"></div>

这应该行得通

.state( 'layout', {
    abstract: true,
    url: '',
    views: {
        'layout': { templateUrl: 'template/layout.html' },
        'header': {
            templateUrl: 'template/header.html',
            controller: 'HeaderController'
        },
        //'sidebar': { templateUrl: 'template/sidebar.template.html' }
        'sidebar@layout': { templateUrl: 'template/sidebar.template.html' }
    }
} )
.state( 'layout.home', {
    url: '/',
    views: {
        //'main@layout.home': { templateUrl: 'template/main.html' }
        'main': { templateUrl: 'template/main.html' }
    }
}
父状态“布局”-现在的目标是
sidebar@layout“
-使用绝对命名,在“template/layout.html”中查找模板

子视图只是使用父对象“main”,因此不需要绝对命名。如果我们愿意,那就是

'main@layout': { templateUrl: 'template/main.html' }
因为我们的目标是家长的“布局”目标
ui view=“main”

可以在此处找到工作示例(提供更多详细信息)

试试这个:

$stateProvider
    .state( 'layout', {
        abstract: true,
        url: '',
        views: {
            'layout': { 
                templateUrl: 'template/layout.html' 
            }
        }
    } )
    .state( 'layout.home', {
        url: '/',
        views: {
            'main': { 
                templateUrl: 'template/main.html' 
            },
            'header': {
                templateUrl: 'template/header.html',
                controller: 'HeaderController'
            },
            'sidebar': {
                templateUrl: 'template/sidebar.template.html' 
            }
        }
    }
);

很高兴见到你,先生!享受UI路由器;)