2014-01-22 48 views
0

我正在開發角度的web應用程序,我有這個疑問,是否有可能從控制器分離UI絕對乾淨?如何使用角度從控制器分離UI?

我有一個控制器方法發送請求到服務器來檢索數據。如果發生錯誤,我需要通過一些友好的消息通知用戶。 所以我想我必須調用UI框架的某個API來通知用戶彈出窗口或某種敬酒。但是這樣做,是不是說我將UI代碼嵌入到我的控制器邏輯中?這不是UI和控制器之間乾淨分離的對立面嗎? 如果我想切換到另一個UI框架,這意味着我需要改變我的控制器代碼。

我是一個web應用程序的新手,希望有人能澄清我的疑惑。 你會做什麼?

+0

一般你會建立服務,與外部資源進行交流或執行第三方行動,如吐司消息... – Claies

回答

1

我有一個控制器方法發送請求到服務器檢索數據。如果發生錯誤,我需要通過一些友好的消息通知用戶。所以我想我必須調用UI框架的某些API

你不一定需要這樣做。在您的用戶界面中,您可以使用HTML(UI代碼)向用戶顯示問題。使用ng-if,這個UI代碼對用戶是隱藏的。如果控制器檢測負載故障時,它便可以將控制器上的值,將做以下

  • 導致UI代碼顯示
  • 還可以選擇設置在UI代碼的顯示信息

<div ng-if="displayError">{{errorMsg}}</div>

然後,在你的控制,這樣的事情:

MyService.getData().then(
    function(responseData) { 

     $scope.goodData = responseData; 
    }, 

    function(failure) { 

     $scope.displayError = true; 
     $scope.errorMsg = "Failed to Retrieve Data" 

    } 
); 
+0

感謝您的這種快速反應,賈斯汀。 –

相關問題