【发布时间】:2016-10-20 03:09:00
【问题描述】:
我尝试使用 Angular 和 ASP.NET Web API 为我创建博客。
这是我的Layout.cshtml
<div id="header">
<div data-ui-view="menu"></div>
</div>
<div id="main">
<div data-ui-view></div>
<div data-ui-view="sidebar"></div>
</div>
<div id="footer">
<div data-ui-view="footer"></div>
</div>
使用text/ng-template查看和查看
<!-- Layout Views -->
<script type="text/ng-template" id="/Templates/Layout/Menu.html">
<div>
<a ui-sref="home">Home</a>
<a ui-sref="register">Register</a>
</script>
<script type="text/ng-template" id="/Templates/Layout/Sidebar.html">
<div>Sidebar</div>
</script>
<script type="text/ng-template" id="/Templates/Layout/Footer.html">
<div>Footer</div>
</script>
<!-- Page Views -->
<script type="text/ng-template" id="/Templates/Layout/Home.html">
<div>Home</div>
</script>
<script type="text/ng-template" id="/Templates/Layout/Register.html">
<div>Register</div>
<a ui-sref="home">Back</a>
</script>
这里是app.js
angular.module('app', ['ui.router'])
.config(['$stateProvider', '$urlRouterProvider',
function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider
.state('home', {
url: '/',
views: {
'': {
templateUrl: '/Templates/Layout/Home.html'
},
'menu@': {
templateUrl: '/Templates/Layout/Menu.html'
},
'sidebar@': {
templateUrl: '/Templates/Layout/Sidebar.html'
},
'footer@': {
templateUrl: '/Templates/Layout/Footer.html'
}
}
}).state('register', {
url: '^/Register',
templateUrl: '/Templates/Layout/Register.html'
});
}]);
这是我想要的:
- 当我浏览主页
(domain/#/)时,它会将未命名的视图替换为Home.html - 当我浏览注册页面
(domain/#/Register)或从菜单中点击Register时,它将用Register.html替换未命名的视图
目前,domain/#/ 工作正常,但 (domain/#/Register) 仅显示 Register 视图,而它也应该显示其他 3 个(菜单、侧边栏、页脚)视图。
我检查了 2 天的 stackoverflow 和不同的博客,但无法解决问题。我在这里想念什么?任何帮助,将不胜感激。
【问题讨论】:
标签: angularjs angular-ui-router