2010-08-23 115 views
0

我在Flex 4.1中工作,並且我有一個viewstack和tabbar作爲我的主導航。用戶登錄到應用程序,然後應該只能看到哪些選項卡可用於其用戶級別。在沒有狀態的情況下向Flex 4 UI添加permssions

我想盡可能地堅持使用MXML,因爲它可以很好的與框架一起工作。但我正在想這件事情。做這件事的常見做法是什麼?

僅供參考:用戶級別對於狀態稍微複雜。有很多選擇,讓許多人可以輕鬆地做到州/州和州組。

Chimp對於那些感興趣的人來說是一個很酷的庫。這有點舊,並且似乎沒有太多的動力去擴展它通過UIComponents。所以爲了我的目的,它不會這樣做。

同樣,您如何設置這些系統?

更新: 我不得不妥協,但實際上最終效果很好。系統現在可以建設性地工作,而不是破壞性地放置權限(首先有一切可用並刪除其後的元素)。下面是一個示例:

[Bindable] 
public var managePage:ManagePage; 
[Bindable] 
public var reportPage:ReportPage; 

    ... 

switch(permission) 
{ 
    case "create": 
     navigatorContent.label = "Manage"; 
     navigatorContent.addElement(managePage); 
     viewStack.addElementAt(navigatorContent,1); 
      break; 
    case "read": 
     navigatorContent.label = "Report"; 
     navigatorContent.addElement(reportPage); 
     viewStack.addElementAt(navigatorContent,2); 
      break; 
} 

很明顯,這僅用於添加元素,但刪除它們同樣簡單。這個解決方案給我留下了我一直在尋找的所有東西,所以我很高興。

回答

0

所以更精細的最終解決方案:

[Bindable] 
protected var managePageView:NavigatorContent; 
[Bindable] 
protected var managePage:ManagePage; 
[Bindable] 
protected var reportPageView:NavigatorContent; 
[Bindable] 
protected var reportPage:ReportPage; 

    ... 

public function permissionCreate(permission:String):void 
{ 
    switch(permission) 
    { 
     case "create": 
      managePageView.label = "Manage"; 
      managePageView.addElement(managePage); 
      viewStack.addElementAt(managePageView,1); 
       break; 
     case "read": 
      reportPageView.label = "Report"; 
      reportPageView.addElement(reportPage); 
      viewStack.addElementAt(reportPageView,2); 
       break; 
    } 
} 
public function permissionRemove(permission:String):void 
{ 
    switch(permission) 
    { 
     case "create": 
      managePageView.removeElement(managePage); 
      viewStack.removeElementAt(managePageView,1); 
       break; 
     case "read": 
      reportPageView.removeElement(reportPage); 
      viewStack.removeElementAt(reportPageView,2); 
       break; 
    } 
} 

我要去太變成一個圖書館這在未來的一個月左右。

1

對於所有意圖和目的,您必須構建自己的框架來處理應用程序的權限/安全問題。 TabBar組件可以接受dataProvider,因此只需根據用戶登錄創建一個;並且它是基於用戶修改導航的簡單方法。

+0

我認爲你的解決方案是可靠的,但在我運行的應用程序框架/方法論中,它並不能很好地工作。不過,我接受了一半的建議。我基本上有一個交換機根據傳入的權限添加/刪除元素。請參閱更新。 – noazark 2010-08-23 15:45:22

+0

很高興你能工作。如果你覺得我的回答不值得「正確」的印記,一定要寫出你自己的答案,並選擇它作爲正確的答案。像這樣的問題很難,因爲它們非常開放。 – JeffryHouser 2010-08-23 16:31:06

相關問題