使用AngularJS过滤JSON数据,并使用智能表使用ng repeat登记
Filter JSON Data using AngularJS and enlist with ng-repeat using smart tables
这是我的JSON数据。
"ATTRIBS":{
"WWW":
{
HIGH:10,
LOW:1,
NAME:World Wide Web,
TYPE:ON
},
"NET":
{
HIGH:12,
LOW:1,
NAME: Local Net,
TYPE:OFF
}
}
我想在表中列出这个JSON数据(我使用的是智能表),其中我只想列出TYPE: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>
这就是我的控制器的外观,它从其他服务加载JSON数据。
当我在控制器中使用if条件在ng中重复使用offAttribs时,它只抛出关键字as(索引号0,1,2…),而不是(JSON的关键字,即WWW或NET…),
编辑。。。。。。。。。。。。。工作代码
$scope.offAttribs = [];
for (var key in attribData){
attribData[key]['ABRV'] = key;
if (attribData[key].TYPE == 'OFF' ) {
$scope.offAttribs.push(attribData[key]);
}
}
我不认为offAttribs
具有您所期望的数据结构。Angular的(key, value) in offAttribs
语法只有在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映射方向备选方案
- AngularJS UI路由器不能像ng路由器那样工作
- 角度:在ng重复上切换图像
- 正在使用$location.path(.)路由ng视图
- AngularJS:ng之后,重复$scope值未按预期更新
- ng打开空字符串
- 我应该使用Ng提交还是点击表格
- ng init中的表达式无法使用ng repeat
- ng更改事件不适用于Dropdown
- ng视图外的链接重定向到ng视图内的页面
- 三星智能电视应用程序;Brightcove示例应用程序远程控制问题
- ng应用程序使脚本无限运行
- 角度的项目列表 ng 重复,ng 单击显示全宽描述
- ng隐藏和ng显示无法正常工作
- 从ng模板访问作用域
- 防止ng重复中的重复值(AngularJS)
- 从键值结构中获取数据,并将其与AngularJS中ng重复的值进行比较
- AngularJs列表ng单击以选择选项转换
- 智能表通过ng模型设置值时不会触发任何事件
- 使用AngularJS过滤JSON数据,并使用智能表使用ng repeat登记