我有一个Angular项目,当直接/重新加载页面时,它会破坏某些部分(特别是顶部导航)。页面的其余部分工作正常。只有topnav使ui-sref
之类的内容无法扩展到href
且数据未加载。我还注意到当我直接重新加载/访问页面时,topnav控制器根本没有运行。
在ui-router
配置中有这个app
抽象路由
$stateProvider
.state('app', {
url: '/app',
abstract: true,
templateUrl: helper.basepath('app.html'),
resolve: helper.resolveFor('fastclick', 'modernizr', 'icons', 'screenfull', 'animo', 'sparklines', 'slimscroll', 'classyloader', 'toaster', 'whirl', 'spinkit', 'akoenig.deckgrid')
})
它可能带有项目正在使用的主题。无论如何,在app.html文件中
<!-- top navbar-->
<header ng-include="'app/views/partials/top-navbar.html'" class="topnavbar-wrapper"></header>
然后在top-navbar.html
{{'OUTSIDE'}}
<nav ng-controller="TopNavBarController" role="navigation" class="navbar topnavbar" style="background-color:#1663DE;">
{{'INSIDE'}}
外部和内部用于调试。我注意到在重新加载或直接访问页面时,angular会在HTML中正确打印OUTSIDE
,但无法在内部正确打印。它在页面上显示为{{'INSIDE'}}
。这让我觉得ng-controller
有问题。删除ng-controller
可修复此特定问题。
我在控制器功能后面添加了log
:
function TopNavBarController($scope, $state, SweetAlert) {
console.log('in TopNavBarController')
控制器功能似乎没有运行?怎么了?
只有topbar失败,控制器/应用程序的其余部分才能正常工作。可以加载数据,ui-sref
正确扩展。