【发布时间】:2015-12-07 20:34:53
【问题描述】:
我的应用程序有一个主控制器,它现在只负责显示和隐藏站点标题。但是,当我导航回主页(通过主页链接或后退按钮)时,它不会再次显示。我已调试并验证范围变量设置为 true,但视图未反映这一点。
以下是相关代码:
(index.html)
...
<body ng-app="mainApp" ng-controller="MainController">
<div class="container">
<div class="top-header" ng-show='showHeader'>
...
(MainController.js)
app.controller('MainController', function($scope, $location) {
init();
$scope.click = function() {
init();
}
function init() {
$scope.showHeader = false;
if ($location.path() === "/")
$scope.showHeader = true;
}
$scope.$on('$routeChangeSuccess', function(next, current) {
init();
});
});
我确信这是我所缺少的一些微不足道的东西,因为我是 AngularJS 的新手,但任何帮助将不胜感激。
【问题讨论】:
-
你的
$scope.click函数是用来做什么的?它将$scope.showHeader设置为 false,这可能会导致您的问题。 -
你试过
ng-if而不是ng-show吗? -
$routeChangeSuccess回调的签名是否正确? Here 它说应该首先出现event参数。 -
$scope.click 以前用于某些事情。我的意思是删除它。但这并没有引起问题。我在调试的时候已经验证过了,刚刚删除了。
-
@Aldo 据我所知,不需要事件参数。它不会导致任何错误,添加它不会改变任何东西。