如何在角度ng视图中隐藏index.html页面的某些内容?

时间:2015-09-03 17:38:45

标签: angularjs angularjs-directive ng-view ng-hide

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

我的index.html文件包含所有视图的底部菜单栏,我创建了一个home.html视图,我不希望包含该菜单栏。这是否可以用角度?

谢谢!

2 个答案:

答案 0 :(得分: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的情况下更新我的答案。

答案 1 :(得分:3)

是的,你可以这样做

例如,您的底栏为

<div>This is bottom bar<div>

现在将其更改为

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

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

在应用程序中,您希望保持底栏可见,只需执行$rootScope.hideit = false;