2014-01-22 45 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

感谢您的这种快速反应,贾斯汀。 –

相关问题