我正在开发有角度的网络应用程序,我怀疑是否可以将UI与控制器分开绝对干净?
我有一个控制器方法,它向服务器发送请求以检索数据。如果发生了一些错误,我需要通过一些友好的消息通知用户。 所以我想我必须调用UI框架的某些api来通过弹出窗口或某种吐司通知用户。但这样做,并不意味着我将UI代码嵌入到我的控制器逻辑中?这与UI和控制器之间的清晰分离是否相反? 如果我想切换到另一个UI框架,这意味着我还需要改变我的控制器代码。
我是网络应用的新手,希望有人能澄清我的怀疑。 你会做什么?
答案 0 :(得分:1)
我有一个控制器方法,它向服务器发送请求以检索数据。如果发生了一些错误,我需要通过一些友好的消息通知用户。所以我想我必须调用UI框架的某些api
您不一定需要这样做。在您的UI中,您可以使用HTML(UI代码)向用户显示问题。使用ng-if
,此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"
}
);