Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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 使用AngularJS过滤JSON数据,并使用智能表使用ng repeat登记_Javascript_Json_Angularjs - Fatal编程技术网

Javascript 使用AngularJS过滤JSON数据,并使用智能表使用ng repeat登记

Javascript 使用AngularJS过滤JSON数据,并使用智能表使用ng repeat登记,javascript,json,angularjs,Javascript,Json,Angularjs,这是我的JSON数据 "ATTRIBS":{ "WWW": { HIGH:10, LOW:1, NAME:World Wide Web, TYPE:ON }, "NET": { HIGH:12, LOW:1,

这是我的JSON数据

"ATTRIBS":{

          "WWW":
            {
              HIGH:10,
              LOW:1,
              NAME:World Wide Web, 
              TYPE:ON
            },
          "NET":
            {
              HIGH:12,
              LOW:1,
              NAME: Local Net,
              TYPE:OFF
            }
          }
我想在表中列出这个JSON数据(我使用的是智能表),其中我只想列出类型为:OFF的数据

我曾尝试在ng repeat中使用过滤器,但数据未填充

这是我用于在表中列出的代码:

    <tr ng-repeat="(key, value) in offAttribs">

        <td>{{value.NAME}}</td>
        <td>{{value.key}}</td> //I want abbreviations here i.e, www,NET..etc 
        <td>{{value.TYPE}}</td>
        <td>{{value.LOW}}</td>
        <td>{{value.HIGH}}</td>

我不认为offAttribs的
具有您所期望的数据结构。offAttribs
语法中Angular的
(键、值)仅在
offAttribs
是对象时才起作用。在代码示例中,offAttribs
是一个数组

如果您想访问WWW或NET等密钥,则需要
offAttribs
作为对象:

$scope.offAttribs = {};

for (var key  in attribData){
    if (attribData[key].TYPE == 'OFF' ) {
        $scope.offAttribs[key] = attribData[key];
    }
}

TLDR;数组的键是它的索引。这就是为什么您得到的是0,1,2而不是WWW、NET等

当您在ng repeat上方添加div时会出现什么?
您是否尝试过过滤控制器中的数据并将其传递给
ng repeat
?如果你把所有的逻辑都放在模板中,结果可能会有点混乱。ng repeat=“(key,value)in attribData | filter:{TYPE:“OFF”}你试过这个吗?@MayK是的,我试过这个,单引号“OFF”没有出现表,而“OFF”在我的webstorm IDEYes中抛出“expression expected”错误!它对所有“OFF”值进行迭代,并在表中创建空字段(高、低名称、类型没有值…),而我还有一个字段,这是否回答了您的问题?不,这给了我所有值{NAME TYPE LOW HIGH},但我还希望在另一个表字段中以缩写形式显示“WWW”“NET”,因为对象保存在$scope.offattribs。。。。its将标签名称设置为0,1,2,3….添加了attribData[key]['ABRV']=key;我得到了我想要的。我不确定这是否是一种好的做法。
$scope.offAttribs = {};

for (var key  in attribData){
    if (attribData[key].TYPE == 'OFF' ) {
        $scope.offAttribs[key] = attribData[key];
    }
}