2014-04-04 91 views
5

登錄頁面通常與其他頁面的外觀完全不同。AngularJs和登錄頁面

基本上,使用角度的默認路由機制,index.html可以具有ng-view以顯示各種頁面。
這個ng-view沒有「條件」的概念。

事實上,如果我想指定一些導航欄到所有頁面但登錄頁面怎麼辦?

我應該爲每個模板「包含」一個導航欄,打破DRY原則嗎?

+1

或者不要對着陸頁使用角度。只需在點擊行動號召後將它們帶到您的應用程序或*繼續到網站* –

+0

@ ogc-nick我想到了這一點,但爲什麼強制刷新,如果角解決方案可能存在。用戶體驗可能會得到改善(沒有CSS,JS再次獲取等) – Mik378

+0

在我的特殊情況下,我的着陸頁不是靜態頁面,我想訪問角度特徵。 –

回答

1

我這樣做,通過採用了棱角分明的UI路由器https://github.com/angular-ui/ui-router/wiki

具有角UI路由器可以定義的狀態,而不是,但你需要的Pub/Sub的狀態恢復到您的導航組件。

Angular ui路由器允許您嵌套視圖,因此您不需要將導航放在視圖之外,這會導致頁面重新加載到視圖之外。

只是說明ui路由器使用ui-sref指令來導航而不是ng-href。這可能是重塑你的項目的很多工作,但我相信這是值得的。

關於更改導航。 您可以將導航包裝在ng-if或ng-show指令中,或者您的/,/ home狀態可以有完全不同的基礎模板。

乾杯

+0

實際上,我的真實場景是我的着陸頁有一個不同的導航欄(引導組件)。所以我在ng-class中用當前位置玩,以顯示或隱藏預期的課程,關於用戶是否在登陸頁面或其他位置。但是,在某些情況下,當Angular尚未加載時,我顯示右側導航欄有一些延遲。 (使用ng-cloak不會很UX)Hope Angular ui-router可以幫助:) – Mik378

+0

如果你嚴重依賴bootstrap,請查看http://angular-ui.github.io/bootstrap/。我建議一個navbar指令或一個視圖,以哪個更容易爲準。 –

+0

是的,我將它用於其他組件,比如導航欄,不會帶來特別的好處。這不會改變這個職位的解決方案的選擇方式:) =>我會有同樣的問題 – Mik378