这是我的JSON数据:
{
result: 1,
vote_time_slots: {
2016-08-07: {
diff: 1080,
slots: {
08:42: false, 09:36: false, 06:54: false, 04:30: false,
09:18: false, 09:00: false, 08:24: false, 05:42: false,
06:00: false, 10:12: false, 08:06: false, 06:36: false,
07:12: false, 07:48: false, 05:24: false, 06:18: false,
09:54: false, 07:30: false, 10:30: false, 05:06: false,
04:48: false
}
},
2016-07-25: {
diff: 1080,
slots: {
08:42: false,
09:36: false,
06:54: false,
}
},
我希望像08:42,09:36等时间段进入下拉列表。
请告诉我如何导航到插槽字段并获取插槽值过滤为false(值为)
<li ng-repeat="c in eventTimings | filter: ????:false"><a>{{(c)}}
如何基于过滤器显示?
如果我有真值,则相应的时段不应显示在下拉列表中。
答案 0 :(得分:1)
试试这样:
slots = {
"08:42": false, "09:36": false, "06:54": false, "04:30": false,
"09:18": false, "09:00": false, "08:24": false, "05:42": false,
"06:00": false, "10:12": false, "08:06": false, "06:36": false,
"07:12": false, "07:48": false, "05:24": false, "06:18": false,
"09:54": false, "07:30": false, "10:30": false, "05:06": false,
"04:48": false
};
var arr = [];
for(var prop in slots) { arr.push(prop); }
console.log(arr);
从这里开始,你重复一下arr
ng-repeat="opt in arr" ...
答案 1 :(得分:0)
您必须迭代插槽的属性(因为它是对象格式)。请在提问之前在stackoverflow中搜索。
查看以下链接中的答案是否有助于使用逻辑来编写自定义过滤器:
答案 2 :(得分:0)
您可以尝试这个简单的solution:
<li ng-repeat="(key, value) in data.slots" ng-if='!value'>{{key}}</li>
另一种方法 - 创建custom filter:
<强> HTML:强>
<li ng-repeat="(key, value) in data.slots | custom : false">{{key}}</li>
<强>使用Javascript:强>
.filter('custom', function() {
return function(input, search) {
var result = {};
angular.forEach(input, function(value, key) {
if (value == search) {
result[key] = value;
}
});
return result;
}});