【发布时间】:2015-08-11 10:44:25
【问题描述】:
我已经在我的应用程序中实现了 UI-Router,但是我遇到了嵌套路由的问题。我的 index.html 页面看起来像;
<body>
<!-- Navigation code -->
<!-- Content from the template -->
<div ui-view></div>
<!-- Footer -->
<!-- Application Scripts -->
</body>
我的 Angular ui-route 代码是;
(function () {
'use strict';
var app = angular.module('rbApp', ['ngAnimate', 'ui.router', 'ui.bootstrap']);
app.config(["$stateProvider", "$urlRouterProvider", function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise("/");
$stateProvider
.state("home", {
url: "/",
templateUrl: "/App/WebSite/home.html",
controller: "homeController as homeVm"
})
.state("programs", {
url: "/programs",
templateUrl: "/App/WebSite/programs.html",
controller: "programsController as programVm"
})
.state("programs.complete", {
url: "/complete",
templateUrl: "/App/WebSite/programsComplete.html"
})
.state("articles", {
url: "/articles",
templateUrl: "/App/WebSite/articles.html",
controller: "articleController as articleVm"
})
}]);
app.run(['$rootScope', function ($rootScope) {
$rootScope.$on('$locationChangeStart', function (event, newUrl, oldUrl) {
console.log('Location change: %s --> %s', oldUrl, newUrl);
});
}]);
})();
当我选择“程序”路由时,页面会正确显示,并且上面的“app.run”代码会更新控制台日志;
Location change: http://localhost:50321/#/ --> http://localhost:50321/#/programs
在程序页面上,我有一个锚标记内的图像,如下所示;
<div class="col-md-3 hidden-sm hidden-xs">
<a ui-sref="programs.complete"><img class="img-thumbnail img-responsive" src="/Images/Programs/Program01Small.jpg" /></a>
</div>
点击图片时会显示控制台日志;
Location change: http://localhost:50321/#/programs --> http://localhost:50321/#/programs/complete
因此,路线的行为似乎符合预期。唯一的问题是“programsComplete.html”模板没有显示,浏览器继续显示“programs.html”模板。
我检查了控制台日志,但没有显示错误,目前“programsComplete.html”仅包含<h1> 标记和文本,因此我可以确认正在加载模板。
谁能告知为什么这不会加载模板?
【问题讨论】:
标签: javascript angularjs angular-ui-router