一次绑定两个元素在页面加载时可见

时间:2014-10-17 19:03:28

标签: javascript angularjs

我正在使用外部过滤服务和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解决方案。

1 个答案:

答案 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 });
}