使用ng-if多次ng-view

时间:2015-04-03 12:10:35

标签: angularjs ng-view

在我的应用程序中,索引页面就像

<div ng-if="isLoggedIn>
   <div ng-view>
     </div>
<div ng-if="!isLoggedIn">
   <div ng-if="type==='admin'">
      <div ng-view>
      </div>
   </div>
   <div ng-if="type!=='admin'">
      <div>.....</div>
      <div ng-view>
      </div>
   </div>
</div>

所以基本上我对不同的视图有不同的ng视图。这里的问题是当用户没有登录时,使用ng-view显示登录页面。但是在登录时,ng-view再次使用登录页面进行初始化(可能已经设置了$ route.current的becoz)。

当用户点击登录按钮时,他/她被定向到主页并再次被重定向到登录页面。所以页面上没有显示任何变化。

可以使用ng-if的ng-show / hide来解决此问题。但是这又产生了另一个问题,即控制器在dom中被称为两次ng-view的两个becoz,并且也不能使用id becoz来引用元素。两个元素是从同一个id生成的。所以这个解决方案无法使用。

有什么方法可以解决它吗?

1 个答案:

答案 0 :(得分:1)

多个&amp;嵌套ng-view无法在同一页面上运行。

您需要查看angular ui-router哪个版本适用于您的情况,您还可以使用嵌套ui-view使用angular ui-router 或者您可以使用ng-if

来避免ui-router