2

我想知道当我访问 angularjs 中的视图时是否可以隐藏 index.html 文件中的某些部分。

我的 index.html 文件包含所有视图的底部菜单栏,并且我创建了一个 home.html 视图,我不想在其中包含该菜单栏。角度可以吗?

谢谢!

4

2 回答 2

5

少 $rootScope

$rootScope 的问题是您将在代码中添加依赖项。maddygoround 的答案很好,但是您的 index.html、home.html 和控制器都将是硬连接的,并且更改会有点困难。

为了摆脱 $rootScope,我会做以下更改:

<div ng-hide="hideit">This is bottom bar<div>

这与 maddygoround 发布的代码相同,它完成了它应该做的事情。现在,您无需到达 home.html 控制器并更改 hideit,而是添加一个监听器来更改路由。

下面的代码可以添加到与 angular.module(); 声明相同的文件中。

app.run(function($rootScope, $location){
  $rootScope.$on('$routeChangeStart', function(event, next, current){
    if ($location.path() == '/home') {
      $rootScope.hideit = true;
    };
  });
});

这将使您的 index.html 独立于 home.html 控制器中发生的事情。这是更多的代码,但可以在未来挽救你的生命。我正在尝试摆脱 $rootScope,如果可以,我将在没有 $rootScope 的情况下更新我的答案。

于 2015-09-03T19:13:11.830 回答
3

是的,你可以这样做

例如,您的底栏为

<div>This is bottom bar<div>

现在将其更改为

 <div ng-hide="hideit">This is bottom bar<div>

现在在 home.html 的控制器中只写$rootScope.hideit = true;

您希望在应用程序中保持底部栏可见的任何位置都可以$rootScope.hideit = false;

于 2015-09-03T17:54:09.343 回答