2015-04-22 22 views
0

我正在處理一個超過100頁的項目,我正在使用AngularJS和ui-route以及一個php REST後端。爲了驗證,我想使用Json Web Token。AngularJS SPA使用大型應用程序進行登錄服務的最佳方式是什麼?

我試圖找到使登錄頁面的最佳方式,但我沒有找到一種方法是,很多谷歌上搜索後。

我的應用只允許登錄用戶訪問它,否則他們應該去登錄頁面。

我的主要問題是,應如何組織中的index.html,因爲登錄頁面具有完全其他的模板比應用程序的其餘部分。

index.html中我有很多被裝載在所有頁面上,除了登錄頁面上像頁眉和頁腳元素。所以爲了達到這個目的,我使用了ng-if = {{user.isLoggedIn}},但我認爲這不是正確的做法,因爲只有一個頁面我必須在所有頁面上都有這個條件。

另一個想法是使用兩個應用程序,因此,如果用戶沒有被重定向到登錄應用程序登錄(實際上重定向,不僅是國家的變化,因爲它使用了另一個主模板)。

有沒有辦法讓我在SPA中登錄頁面,所以我只有一個應用程序?

預先感謝任何有效的答案,我希望我已儘可能清楚。

回答

1

用UI-Route查看嵌套視圖。你可以使$ state.login和$ state.dashboard處於任何狀態,而登錄後可以使用$ state.dashboard.home等。如果你想保存在一個應用程序中,這可能是最簡單的解決方案。 https://github.com/angular-ui/ui-router

+0

太好了!謝謝。根據我的理解,當您在網站上有不同的模板時,可以輕鬆使用此設計,以便設計從父視圖繼承。它是否正確? – Alex7

+0

如果我正確理解您的問題,設計或外部/ css文件仍然由您的索引文件拉入。不知道你是否簽出他們的plnkr或不是,但這裏是鏈接http://plnkr.co/edit/u18KQc?p=preview ,因爲你想改變整個頁面,我會拋出你的第一個UI視圖以及後續將在儀表板模板上的必要位置,可能位於您的標題(導航)和頁腳之間。 –

+0

在索引頭中,我只會加載在整個網站上運行的文件,例如angular.js,其餘的我會在第一層嵌套時加載。如果我有index.login和index.website.home可以說,登錄將加載login.css,網站將加載website.css,這也可在家中使用。 – Alex7

相關問題