簡體   English   中英

Angular.js服務返回$ http成功數據

[英]Angular.js service return $http success data

在我的應用程序中,我想創建一個在后端查看的服務,以檢查用戶是否已登錄並返回用戶數據和特權。 我的工廠服務如下所示:

app.factory 'Session', ['$http', ($http) ->
  getSession: ->
    $http.get("/admin/session")
]

現在,我在下面顯示的控制器中處理服務的成功和錯誤。

$scope.session = Session.getSession()
  .success((data) ->
    # Set the logged in user
    $scope.admin = data

    # Limit any privileges         
  )
  .error((data) ->
    # Logged in user not found so rediret to login screen
    window.location = "/user/login"
  )

我的問題是我需要在許多不同的控制器中重復相同的代碼。 有沒有更好的方法來解決這個問題? 我想我可能需要對$ rootScope做些事情,但我不知道它是如何工作的。

您可以將邏輯放入服務本身。 您將必須使用Promise將成功數據返回到控制器。 因此,對於控制器,將是這樣的:

   Session.getSession().then(function(data){
      $scope.admin = data;
   });

您將處理服務中的錯誤。 請注意,這是偽代碼。

app.factory 'Session', ['$http', ($http) ->
  getSession: ->
    return $http.get("/admin/session")
           .success(data){}
           .error(){ //... redirect user}
]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM