AngularJS视图未使用ng show和$routeChangeSuccess更新

AngularJS视图未使用ng show和$routeChangeSuccess更新,angularjs,ng-show,Angularjs,Ng Show,我的应用程序有一个主控制器,它现在只负责显示和隐藏站点标题。但是,当我导航回主页(通过主页链接或后退按钮)时,它不会再次显示。我已经调试并验证了scope变量是否设置为true,但视图没有反映这一点 以下是相关代码: (index.html) 我确信这是我所缺少的一些琐碎的东西,因为我是AngularJS的新手,但是如果您能提供任何帮助,我将不胜感激。您所说的当您浏览回路径时,很可能不是'/'。 我希望它后面有一些名字 更改此代码: if ($location.path() === "/")

我的应用程序有一个主控制器,它现在只负责显示和隐藏站点标题。但是,当我导航回主页(通过主页链接或后退按钮)时,它不会再次显示。我已经调试并验证了scope变量是否设置为true,但视图没有反映这一点

以下是相关代码:

(index.html)


我确信这是我所缺少的一些琐碎的东西,因为我是AngularJS的新手,但是如果您能提供任何帮助,我将不胜感激。

您所说的当您浏览回路径时,很可能不是
'/'
。 我希望它后面有一些名字

更改此代码:

if ($location.path() === "/") 
        $scope.showHeader = true;
if ($location.path() === "/" || $location.path() === "/<name>") 
        $scope.showHeader = true;
对此:

if ($location.path() === "/") 
        $scope.showHeader = true;
if ($location.path() === "/" || $location.path() === "/<name>") 
        $scope.showHeader = true;
if($location.path()
$scope.showHeader=true;
我建议使用

在那里,您可以确定某个状态是否处于活动状态($state.include)

但对我来说,代码似乎是有效的。 调试init函数中的位置路径,在那里可以看到发生了什么


请注意绑定原语(showHeader)!指令,如ng if创建额外作用域,请仔细检查ng周围是否没有ng if显示您的
$scope是什么。单击
函数用于?它正在将
$scope.showHeader
设置为false,这可能会导致您的问题。您是否尝试了
ng if
而不是
ng show
?调用
$routeChangeSuccess
的签名是否正确?它说应该首先出现一个
事件
参数。$scope.click以前用于某个对象。我本想把它拿走的。但这并不是问题的根源。我在调试时进行了验证,刚刚将其删除。@据我所知,事件参数不是必需的。它不会导致任何错误,添加它也不会改变任何东西。这不起作用。我在调试时也验证了$location.path()=“/”。此时我试图避免使用ui路由器,但我想我可能会这样做,因为应用程序变得越来越复杂。我确实验证了在单击home和browsers back按钮时调用了init函数,并且showHeader被设置为true。如果修复了问题,则将ng show更改为ng。谢谢,这可能有点道理。尝试将原语
showHeader
更改为对象,如
showHeader={status:true}
,并操作状态,例如
$scope.showHeader.status=false
@Aldo我只是尝试将其设置为对象,并在调试时验证了status属性是否设置为true,但在init函数中使用ng-show.Please console.log($path.location())时,它不起作用。。但奇怪的是,它对ng起了作用-if@Anditthas它在主页上记录“/”,在切换视图时更改(到“/注册”等),并在按预期返回时返回“/”。我现在已经将标志切换回原语,但我再次验证了它在使用ng show时不起作用,并且仅在使用ng if时起作用(无论我使用的是对象还是原语)。