一次性绑定两个元素,使其在页面加载时可见
One time bind two elements to be visible on page load
我使用外部过滤服务和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绑定只关心初始页面加载,或者是否有更多的框架类型的功能可以利用?Angular版本-1.2.26
EDIT:使用另一个外部依赖不是一个选项,我正在寻找一种有角度的方式,或者一个聪明的JS解决方案。
我不能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 });
}
相关文章:
- ng绑定和ng href问题.ng href未从控制器加载数据
- 有没有比在app.js上绑定模块名称更好的方法来动态加载视图模型和视图以显示模态
- 更改事件绑定's函数在页面加载时调用
- Jquery函数无法处理动态加载的内容(不是绑定函数)
- 为knockout.js数据绑定加载多个远程数据源
- 为SEO的数据绑定JS预加载数据
- 在页面重新加载后绑定事件,并仅使用Knockout.js、html和js创建新的html元素
- 使用.ech()绑定页面加载上的处理程序,并使用jQuery.clone(true,true)采用它们
- 在不增加分析跳出率的情况下,绑定网页上的内部链接以动态加载
- 为什么AngularJS在页面加载时没有自动绑定属性?包括一个非常简单的例子
- 异步加载ASP.NET绑定的Javascript,然后调用回调
- 空的数组绑定元素在页面加载时消失
- JQuery.on()绑定在重新加载部分页面后不起作用
- 使用 knockoutjs 加载绑定
- 当URL通过HTML更改时,带有jQuery密钥绑定的AngularJS指令未正确加载绑定
- AngularJS-如何在JS中加载绑定到的变量之前不显示HTML元素
- 如何在CFSelect上设置选定值并重新加载绑定的CFSelect
- 如果以异步方式加载绑定的资源,则函数中的$watch/$timeout包装会中断双向绑定
- js:如何延迟加载绑定
- 鼠标悬停时懒惰加载绑定