2014-03-26 102 views
1

首先,我在Angular JS中很新。我在一個項目中工作,在這個項目中,我有三種類型的用戶,所有三個用戶都有不同類型的視圖。現在我的問題是,可以在登錄後纔可能渲染頁面/視圖,而這些頁面/視圖屬於登錄用戶而不是所有頁面?如果是,那麼如何?如何呈現那些與角度相關的用戶角色

+1

目前還不清楚你問的是什麼。你是在說只在頁面上顯示某些視圖?這可以用'ng-show'或'ng-visible'完成。您需要讓JavaScript以某種方式瞭解您的角色,並且您可以創建自己的指令,以便在用戶不在某個角色時刪除元素... –

+0

@JasonGoemaat:首先感謝回覆。我有三個用戶:管理員,投資者,創始人。所有三個人都有不同的觀點。有可能加載頁面/視圖屬於登錄用戶? – Invincible

+0

您可能希望看看編寫角度服務以處理項目的身份驗證和授權。這可以通過很多方式完成,你可以在這裏找到一個示例實現:https://github.com/fnakstad/angular-client-side-auth。 – Mikke

回答

0

我會在服務器端做到這一點。像這樣的東西。這將基於設置的用戶標誌類型來插入正確的角度應用程序。當然,這意味着每個用戶都有一個標誌,表明他們是什麼類型的用戶。你可以使用這種類型的用戶的獨特屬性,它的工作原理是一樣的。這將爲每個不同類型的用戶提供獨特的視圖和控制器。我假設你想要一個URL根據用戶的位置來提供三種不同類型的角度應用。如果你想控制哪些URL是可訪問的,那完全是另一回事,應該在你的django視圖中處理。

{% if user.is_staff %} 
    <div ng-app='staffApp'> 
{% elif user.is_investor %} 
    <div ng-app='investorApp'> 
{% elif user.is_founder %} 
    <div ng-app="founder"> 
{% endif %} 
    <div ng-view> 
    </div> 
</div> 

另一種方式是隻需要每個用戶都有類似

@property 
def ng-app(self): 
    return 'investorApp' 

,然後在模板做

<div ng-app='{{ user.ng-app }}'> 
    <div ng-view> 
    </div> 
</div> 

但無論如何,我認爲這將是正確的attirbute方法來解決你的問題:)

+0

感謝您的回答,但我正在運行完全獨立的角度前端應用程序。沒有django模板。 – Invincible