2014-09-04 88 views
0

我正在处理承诺的小问题。我正在尝试使用网格上的简单信息制作可展开的表格,然后单击并展开它,然后进行更详细的说明。它工作正常。我的问题是,当你展开网格片刻(如0.5-1s)时,你可以看到旧的附件列表(来自之前检查过的新闻),然后重新解析延期的诺言。角数据绑定和承诺处理

这里是我的代码至今:控制器和服务的一部分(restangular):http://pastebin.com/ViBpXuhr

HTML代码:http://pastebin.com/K9ZPWScc

由于目前的数据模型,这是我无法去改变,我认为我必须做到这一点方式,或者至少我没有任何其他的想法。所以,当用户看到网格并点击行时,他想检查我运行getAttList函数,并将newsId作为参数,并通过服务列表返回,但我需要但是有一段时间,表已经扩展,但用户完全看不到数据(因为他没有扩展任何更早)或来自以前检查过的新闻的数据。

通常我在处理$ q的承诺,但在这种情况下,我不知道我该怎么做。

回答

1

为避免显示以前检查过的新闻数据,每当$scope.newsIdExpanded值发生更改时,请执行$scope.attachments = null;。您可以轻松地做到这一点的$scope.selectTableRow功能,因为你有以前的($scope.newsIdExpanded)和新(newsId)选定的ID,只是比较两个,看看它们是不同的:

而内容
if ($scope.newsIdExpanded != newsId) { 
    $scope.attachments = null; 
} 

不显示任何正在加载是正常的,因为请求是异步的。你可以显示,例如一个加载图标,而attachments == null

+0

那么,那个很简单。甚至没有想过这个,但是,如果这是常见的技术,那么我会去用它。谢谢 – sniegoman 2014-09-04 17:54:08