ng grid - 如何隐藏过滤器文本栏

时间:2014-06-27 13:19:54

标签: filter show-hide ng-grid

基于此示例,我想隐藏过滤器texbox,并在双击列名后才显示它。

example

我可以从哪里开始? :) 感谢。

编辑:

感谢mainguy的建议我能够完成一个例子http://plnkr.co/edit/euSlVib5POkjAAe2Ucml?p=preview

2 个答案:

答案 0 :(得分:1)

你可以这样做(注意变量fv(filtervisible的缩写):

更改headertemplate中的输入

<input type="text" ng-show="fv" ng-click="stopClickProp($event)" placeholder="Filter..." ng-model="col.filterText" ng-style="{ 'width' : col.width - 14 + 'px' }" style="position: absolute; top: 30px; bottom: 30px; left: 0; bottom:0;"/>

fv添加到控制器范围。

$scope.fv=false; //initially closed

在ngGridDoubleClick插件的onDoubleClick处理程序中为fv添加一个toogle函数。

self.scope.$parent.fv=!self.scope.$parent.fv;

这是Plunker。不完美,因为你必须找到一种方法来调整大小,但它可能会给你一个如何进行的提示。

答案 1 :(得分:1)

我没有使用双击插件;但是,您可以进行双击操作以切换在标题单元格模板的输入标记的ng-show(或ng-hideng-if)属性中引用的范围级别布尔变量,以控制过滤器的可见性。

在你的main.js中:

$scope.filterVisible = false; // hidden initially

在双击处理程序中:

$scope.filterVisible = !$scope.filterVisible;

在标题单元格模板中:

<input ng-show="filterVisible" type="text" ng-click="stopClickProp($event)" placeholder="Filter..." ng-model="col.filterText" ng-style="{ 'width' : col.width - 14 + 'px' }" style="position: absolute; top: 30px; bottom: 30px; left: 0; bottom:0;"/>

您可能希望制作多个范围级别的布尔值(或者甚至更好的布尔数组)来处理切换网格中多个/所有列的过滤器。