Javascript 如何基于index.html页面中的url使用ng if?

Javascript 如何基于index.html页面中的url使用ng if?,javascript,angularjs,uiview,ng-hide,js-routes,Javascript,Angularjs,Uiview,Ng Hide,Js Routes,如果url位于某些嵌套视图中,我想在索引页中使用ng hide。 在我的index.html中,我需要如下内容: <top-bar ng-if="!home"></top-bar> <ui-view class="reveal-animation"></ui-view> <bottom-bar ng-if="!home"></bottom-bar> 我希望当我进入“主页”视图时,这些条会消失。

如果url位于某些嵌套视图中,我想在索引页中使用ng hide。 在我的index.html中,我需要如下内容:

    <top-bar ng-if="!home"></top-bar>
    <ui-view class="reveal-animation"></ui-view>
    <bottom-bar ng-if="!home"></bottom-bar>

我希望当我进入“主页”视图时,这些条会消失。 正如我在相同的问题中看到的,答案是在控制器中使用$location,但是索引页的控制器在哪里


谢谢

一次性教你所有东西并不容易。你必须参考几个概念

http://viralpatel.net/blogs/angularjs-routing-and-views-tutorial-with-example/

我希望此链接将帮助您开始使用Angularjs。

在父控制器中,添加以下内容:

$scope.isHome = function(){
  return $state.is("home");
}
然后按如下方式更改模板:

<top-bar ng-if="!isHome()"></top-bar>
<ui-view class="reveal-animation"></ui-view>
<bottom-bar ng-if="!isHome"></bottom-bar>
$scope.$on("$stateChangeSuccess", function(event, toState){
  $scope.isHome = (toState.name == "home")
})

我还建议签出
$state.包括
$state.current
和其他。只需浏览文档即可

n路线将解决您的问题。首先为整个应用程序设置预定义的路由。如何使用ngRoutes将位置信息传递到index.html?在我的示例中,
有一个控制器,对吗?当您处于home状态时,它有一个控制器;当您处于state1时,它有另一个控制器;对于您在配置中声明的所有状态,依此类推。但是,因为它有一个分配给它的控制器,所以它也有一个作用域,所以您在该作用域中放置的任何内容都只能在
内部访问,而不能在外部访问。在您的情况下,变量
home
需要在一个范围内,但该范围不能是
的范围,因为您需要它在该元素之外。这就是为什么您需要一个父控制器,一个包装视图、顶栏和底栏的控制器。在我的示例中,我为html中的所有内容分配了一个父控制器,但不一定是这样。您只需将代码包装在
中,然后将
iHome
函数放入其中。现在,该函数位于所有3个元素都可以访问的范围内,即顶部栏、ui视图和底部栏。我建议您放轻松,您需要花一些时间学习AngularJS基础知识。首先试试角度路由,ui路由器更先进,如果你只是在学习,它会让你的生活更艰难。祝你好运,耐心一点,我有一年的经验,但我并没有一夜之间学会。直到最近,我才开始使用ui路由器。我从这个家伙那里学到了很多东西:它可以完成这项工作,因为$rootScope是所有作用域的父作用域,但它被认为是一种不好的做法:P