Javascript 使用AngularJS过滤JSON数据,并使用智能表使用ng repeat登记
这是我的JSON数据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,
"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];
}
}