解决此问题的一种方法是使用UI-Router。
例如:
您可以拥有一个app.html
包含所有应用程序视图的页面。在其中添加:
<body>
<div ui-view></div>
</body>
以及整个应用程序所需的样式/脚本。
您的所有视图都将转到那里,包括index.html
视图。
假设除索引之外的页面具有某种页眉/正文/页脚布局,其中正文根据实际页面发生变化,您可以使用如下配置:
var app = angular.module('app', [])
.config(['$stateProvider', function ($stateProvider)
{
$stateProvider
.state('index', {
url: '/index',
templateUrl: 'index.html',
controller: 'IndexController'
})
.state('root', {
templateUrl: 'root.html',
controller: 'RootController'
})
.state('root.somePage', {
url: '/some-page',
templateUrl: 'some-page.html',
controller: 'SomePageController'
})
.state('root.anotherPage', {
url: '/another-page',
templateUrl: 'another-page.html',
controller: 'AnotherPageController'
});
}
这root.html
将类似于 ASP.NET Webforms 中的母版页,因此它将采用以下形式:
<!-- header markup here -->
<div ui-view></div>
<!-- footer markup here -->