Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 多值显示_Javascript_Html_Css_Angularjs - Fatal编程技术网

Javascript 多值显示

Javascript 多值显示,javascript,html,css,angularjs,Javascript,Html,Css,Angularjs,这是我的桌子 <table class="table table-bordered table-responsive table-hover add-lineheight table_scroll"> <thead> <tr> <th ng-hide="hidecolumn == key" ng-repeat="(key, value) in localNew[0]">

这是我的桌子

 <table class="table table-bordered table-responsive table-hover add-lineheight table_scroll">
        <thead>
            <tr>
                <th ng-hide="hidecolumn == key" ng-repeat="(key, value) in localNew[0]">
                    {{key}}
                </th>
            </tr>
      </thead>
      <tbody>
            <tr ng-repeat="test in localNew">
                <td ng-hide="hidecolumn == key" ng-repeat="(key, value) in test">
                    {{value}}
                </td>
            </tr>
        </tbody>
    </table>
这是我的隐藏列变量

$scope.hidecolumn = "salary";
这个很好用

现在我的问题是,我想隐藏多个列 所以我的范围变量如下

$scope.hidecolumn = "name,salary";
那么我如何在我的html表格中管理它来隐藏多列ie多个隐藏值???如果你仍然没有得到我的问题,请告诉我我将添加一个plunker。谢谢你尝试过这个吗:

<td ng-repeat="(key, value) in test" ng-hide="key === 'name' || key === 'salary'">
  {{value}}
</td>

{{value}}

您也可以这样做:

<td ng-hide="hidecolumn.indexOf(key) !== -1" ng-repeat="(key, value) in test">
    {{value}}
</td>

{{value}}

您可以使用
Array
及其
indexOf
方法:

$scope.hidecolumn = [ "name", "salary" ];
//看法

<td ng-hide="hidecolumn.indexOf(key) !== -1" ng-repeat="(key, value) in test">
  {{value}}
</td>

{{value}}

您应该使用数组而不是字符串:

$scope.hidecolumns = ['name', 'salary'];
以及检查当前列是否应隐藏的函数:

$scope.shouldHideColumn = function(column) {
  if ($scope.hidecolumns.indexOf(column.salary)) {
    return true;
  }

  return false;
};
然后在您的
HTML

<th ng-hide="shouldHideColumn(value)" ng-repeat="(key, value) in localNew[0]">
  {{key}}
</th>

{{key}}

您可以调用如下函数:

ng-hide="hidecolumn(key)"
JS


如果函数返回true,ng hide将“hide”元素。

indexOf工作得很好,但如果您希望在其他地方重复相同的方法,您可能希望在全局位置为数组创建一个contains方法,如下所示:

Array.prototype.contains = function contains(obj) {
    for (var i = 0; i < this.length; i++) {
        if (this[i] === obj) {
            return true;
        }
    }
    return false;
};
<td ng-hide="hiddencolumns.contains(key)" ng-repeat="(key, value) in test">
    {{value}}
</td>
然后你可以这样简单地使用它:

Array.prototype.contains = function contains(obj) {
    for (var i = 0; i < this.length; i++) {
        if (this[i] === obj) {
            return true;
        }
    }
    return false;
};
<td ng-hide="hiddencolumns.contains(key)" ng-repeat="(key, value) in test">
    {{value}}
</td>

谢谢大家,我刚刚将字符串转换为array
var-array=string.split(',')


得到了想要的结果,谢谢大家的帮助

不,我不想这样做,如果我添加了另一列,我需要在表中添加该列,我不想,,,,根据我的范围变量,我的html表必须动态响应请解释一下??如果“hidecolumn”,indexOf方法返回-1字符串不包含键。我的隐藏列是一个字符串,,它将是逗号分隔的字符串,因为我已经编写了一个指令,它将作为属性传递给该指令,它将根据该指令隐藏。OK谢谢它解决了我的问题。您能检查这个问题吗?对不起,先生,我不能这样做,我有一个逗号分隔的字符串,它是由我的向导创建的,所以我可以更改它..还有其他想法吗?我的隐藏列是一个字符串,它将是逗号分隔的字符串,因为我已经编写了一个指令,它将作为属性传递给该指令,它将根据该指令隐藏。这样做感觉很奇怪,我想知道用例,但ok:)我可以将数组属性传递给directive吗当然可以。您也可以传递对象。只需使用
=
而不是
@
。它将为您提供双重数据绑定。如果您想通过单向数据绑定传递对象,请使用
Ohk thanku它解决了我的问题您能检查这个问题吗我的隐藏列是一个字符串,它将是逗号分隔的字符串,因为我已经写了一个指令,它将作为该指令的属性传递,它将根据该指令隐藏Okh thanku它解决了我的问题你能检查这个问题是否解决了你的问题你能投票或标记为正确吗?对不起,先生,我不能这么做,我有一个逗号分隔的字符串,这是由我的向导创建的,所以我可以更改..还有其他想法吗?我如何使用逗号分隔的字符串?我的hiddencolumn是一个字符串,,它将是逗号分隔的字符串,因为我编写了一个指令,它将作为属性传递给该指令,它将根据该指令隐藏抱歉,先生,我不能这样做,我有一个逗号分隔的字符串,它是由我的向导创建的,所以我可以更改它..还有其他想法吗?我的隐藏列是一个字符串,它将是逗号分隔的字符串,因为我写了一个指令,它将作为属性传递给该指令,它将根据该指令隐藏,或者我是否可以在属性中传递数组?Ohk thanku它解决了我的问题你能检查这个问题吗
<td ng-hide="hiddencolumns.contains(key)" ng-repeat="(key, value) in test">
    {{value}}
</td>
var array = $scope.hidecolumn.split(',');