我在处理承诺时遇到了小问题。我正在尝试使用网格上的简单信息创建一个可扩展的表格,如果单击并展开它,则会更详细。它工作正常。我的问题是当您将网格扩展一会儿(如0.5-1s)时,您可以看到旧的附件列表(来自之前检查过的新闻),然后才能解决restangular promise。
这是我的代码,直到现在:控制器和部分服务(restangular):http://pastebin.com/ViBpXuhr
HTML代码:http://pastebin.com/K9ZPWScc
由于当前的数据模型,我无法真正改变,我认为我必须这样做,或者至少我没有任何其他想法。因此,当用户看到网格并点击他要检查的行时,我运行getAttList函数并将newsId作为参数并通过服务列表返回我需要但是有一个很短的时间表已经扩展但用户看到完全没有数据(因为他没有扩展任何更早的事情)或以前检查过的新闻的数据。
通常我用$ q处理承诺但在这种情况下我不确定应该怎么做。
答案 0 :(得分:1)
为了避免显示以前检查过的新闻中的数据,每次$scope.attachments = null;
值更改时都要$scope.newsIdExpanded
。您可以轻松地在$scope.selectTableRow
函数上执行该操作,因为您已选择上一个($scope.newsIdExpanded
)和新的(newsId
)ID,只需比较两者以查看它们是否不同:< / p>
if ($scope.newsIdExpanded != newsId) {
$scope.attachments = null;
}
在加载内容时没有显示任何内容是正常的,因为请求是异步的。您可以在attachments == null
时显示加载图标。