2015-04-03 27 views
1

在我的應用程序的索引頁面就像是多個NG視相機連NG-如果

<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已經設置)。

當用戶點擊登錄按鈕時,他/她被引導到主頁並再次被重定向到登錄頁面。因此頁面上不會顯示任何更改。

這個問題可以使用ng-if/ng ins-ng來解決。但是,這又產生了另一個問題,即控制器被調用兩次,因爲在dom中有兩個ng-view,而元素也不能用id來引用。becoz兩個元素是從同一個id生成的。所以這個解決方案不能使用。

有什麼辦法解決它?

回答

1

多個&嵌套ng-view不會在同一頁上工作。採用了棱角分明的UI路由器 或者,你可以使用ui-router

+0

@Anita做你看着避免ng-if

你需要看看angular ui-router這將是巨大的,你的情況來使用,你也可以使用嵌套ui-view在我的答案..做它可以幫助你嗎? – 2015-04-06 12:11:50

+0

是的,它很好。但在我的應用程序中改變路由和視圖的結構將會很困難。所以我改變了代碼,只做一個ng-view,並把條件放在其他div上,使它們有條件地顯示 – Anita 2015-04-08 05:41:23

+0

他們你可以通過ng-switch-when使用'ng-switch'來使用它。看到這個http:/ /plnkr.co/edit/A0e5oKM7lmLrzdPyvMIF?p=preview – 2015-04-08 05:43:04