加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

anglejs – 与Angular.js一起支撑

发布时间:2020-12-17 09:42:04 所属栏目:安全 来源:网络整理
导读:我试图使用footable( http://themergency.com/footable-demo/responsive-container.htm)和angular.js. 当缩小窗口大小时,仅在单击加号时显示列3,4,5. Angular.js提供了过滤功能,所以当我把一些搜索字符串如下所示: 表中的行被过滤. 现在的问题是当我尝试删
我试图使用footable( http://themergency.com/footable-demo/responsive-container.htm)和angular.js.

当缩小窗口大小时,仅在单击加号时显示列3,4,5.

Angular.js提供了过滤功能,所以当我把一些搜索字符串如下所示:

表中的行被过滤.

现在的问题是当我尝试删除这个搜索字符串如下:

所有的行都会再次显示,但是UI被扭曲.

我试图在angular.js中使用回调

$scope.$watch('searchStringID',function() {
$('#tableId').trigger('footable_initialize');
}

但是没有办法,如果有人可以建议如何解决这个问题.

谢谢.

要添加到 Daniel Stucki’s answer,而不是每次执行ng-repeat执行时添加每个行,您可以等到ng重复完成,然后在父表本身上初始化FooTable:
.directive('myDirective',function(){
  return function(scope,element){
    var footableTable = element.parents('table');

    if( !scope.$last ) {
      return false;
    }

    if (! footableTable.hasClass('footable-loaded')) {
      footableTable.footable();
    }
  };
})

这对于具有多行的表格来说可以更好.

注意元素自动为jQlite/jQuery object,因此不再需要将其包装在$()语法中.

更新

AngularJS的优点之一是双向数据绑定.为了保持FooTable数据与最新数据同步,您可以执行以下操作:

.directive('myDirective',element){
    var footableTable = element.parents('table');


    if( !scope.$last ) {
        return false;
    }

    scope.$evalAsync(function(){

        if (! footableTable.hasClass('footable-loaded')) {
            footableTable.footable();
        }

        footableTable.trigger('footable_initialized');
        footableTable.trigger('footable_resize');
        footableTable.data('footable').redraw();

    });
  };
})

范围.$evalAsync包装器在DOM准备好但在显示之前执行,从而防止数据闪烁.额外的触发器和重绘方法强制初始化的FooTable实例在数据更改时进行更新.

该指令保留用户体验 – 任何FooTable排序,过滤或分页保留仍然存在 – 无论何时更新数据,都能无缝加载数据.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读