我正在使用外部过滤服务和ngGrid来显示我的数据。我想要隐藏一些控件(文本框,搜索按钮),直到解析填充表数据的承诺,但仅限于页面加载。加载页面后,我希望ngGrid外部的静态HTML保持可见。我目前有一个像
的旗帜//first line in controller
$scope.isUpdating = true;
var getData = function(){
$scope.isUpdating =true;
ngGridDataPromise.then(function(){//operations..})
.finally(function(){ $scope.isUpdating = false });
}
所以我有一个函数,因为它的第一个动作是集合isUpdating = true
,并且该函数内部的一个promise将最终设置为isUpdating = false。我遇到的问题是,随着请求的发生,有一个小的时间窗口,承诺没有解决,我的模板上的ng-show没有显示我需要的控件。
HTML
<div ng-show="!isUpdating"><buttons></buttons></div>
如何使isUpdating绑定只关心初始页面加载,还是有更多的框架类型工具可以利用它?角度版本 - 1.2.26
编辑:使用另一个外部依赖不是一个选项,我正在寻找一种角度方式,或一个聪明的JS解决方案。答案 0 :(得分:0)
我不是100%肯定我会按照您的要求进行操作,但我相信您希望在第一次调用getData时隐藏控件,直到它完全解析为止,而不是同一会话中的后续请求?如果是这样,我相信这会奏效:
//first line in controller
$scope.isUpdating = true;
var firstLoad = true;
var getData = function(){
if(firstLoad) {
$scope.isUpdating = true;
firstLoad = false;
}
ngGridDataPromise.then(function(){//operations..})
.finally(function(){ $scope.isUpdating = false });
}