Javascript 在某些条件下使用ng repeat显示JSON
我用Javascript 在某些条件下使用ng repeat显示JSON,javascript,angularjs,json,Javascript,Angularjs,Json,我用$http()获取了这个JSON文件。是这样的: [{ "sno": "4", "eventname": "cricket", "event-type": "sports", "A-team": "mme", "B-team": "eee", "Gender": "male", "time": "2017-11-24 00:00:00", "isresult": "1", "result": "[{\"a\":\"121
$http()
获取了这个JSON文件。是这样的:
[{
"sno": "4",
"eventname": "cricket",
"event-type": "sports",
"A-team": "mme",
"B-team": "eee",
"Gender": "male",
"time": "2017-11-24 00:00:00",
"isresult": "1",
"result": "[{\"a\":\"121/5\",\"b\":\"122/4\"}]",
"match-type": "semi",
"venue": "downs"
},
{
"sno": "2",
"eventname": "cricket",
"event-type": "sports",
"A-team": "cse",
"B-team": "mme",
"Gender": "female",
"time": "2017-11-17 00:00:00",
"isresult": "0",
"result": "winner team-a",
"match-type": "league",
"venue": "tsg"
}]
<th ng-if="item.isresult === 1 && item[event-type] === 'sports'">
<div ng-repeat="i in item.result">
{{i.a}}<br>{{i.b}}
</div>
</th>
我需要使用ng repeat
来显示它,但仅当它的属性(布尔值)isresult
为0
时才显示{{item.result}}
。如果isresult==1
和事件类型=='sports'
,我有一个数组,我需要ng repeat
我是这样做的:
[{
"sno": "4",
"eventname": "cricket",
"event-type": "sports",
"A-team": "mme",
"B-team": "eee",
"Gender": "male",
"time": "2017-11-24 00:00:00",
"isresult": "1",
"result": "[{\"a\":\"121/5\",\"b\":\"122/4\"}]",
"match-type": "semi",
"venue": "downs"
},
{
"sno": "2",
"eventname": "cricket",
"event-type": "sports",
"A-team": "cse",
"B-team": "mme",
"Gender": "female",
"time": "2017-11-17 00:00:00",
"isresult": "0",
"result": "winner team-a",
"match-type": "league",
"venue": "tsg"
}]
<th ng-if="item.isresult === 1 && item[event-type] === 'sports'">
<div ng-repeat="i in item.result">
{{i.a}}<br>{{i.b}}
</div>
</th>
{{i.a}}
{{i.b}
此外,如果事件类型==='athletics'
,我将在一个数组中获得结果,该数组看起来像[{1:“Xjdjd”},{2:“Jxjxj”},{3:“Dhdj”}]
我该怎么做呢?如果我正确理解您的问题,您可以尝试以下方法:
<th>
<div ng-if="item.isresult=='0'">{{item.result}}</div>
<div ng-if="item.isresult=='1' && item[event-type]=='sports'" ng-repeat="i in item.result">
{{i.a}}<br>{{i.b}}
</div>
</th>
{{item.result}
{{i.a}}
{{i.b}
请记住,您在JSON对象中的结果
假设仅为数组,它看起来像项的字符串。因此,请选中此项或将其解析为数组 如果我正确理解您的问题,您可以尝试以下方法:
<th>
<div ng-if="item.isresult=='0'">{{item.result}}</div>
<div ng-if="item.isresult=='1' && item[event-type]=='sports'" ng-repeat="i in item.result">
{{i.a}}<br>{{i.b}}
</div>
</th>
{{item.result}
{{i.a}}
{{i.b}
请记住,您在JSON对象中的结果
假设仅为数组,它看起来像项的字符串。因此,请选中此项或将其解析为数组
angular.module('app',[]).controller('ctrl',function($scope){
$scope.data=[{
“事件类型”:“体育”,
“isresult”:“1”,
“结果”:[{
“a”:“121/5”,
“b”:“122/4”
}],
},
{
“事件类型”:“体育”,
“isresult”:“0”,
“结果”:“优胜者a队”,
},
{
“项目类型”:“田径”,
“isresult”:“1”,
“结果”:[{
“1”:“Xjdjd”
}, {
“2”:“Jxjxj”
}, {
“3”:“Dhdj”
}],
}
]
})
{{i.a}}
{{i.b}
{{item.result}
{{key}}:{{value}
angular.module('app',[]).controller('ctrl',function($scope){
$scope.data=[{
“事件类型”:“体育”,
“isresult”:“1”,
“结果”:[{
“a”:“121/5”,
“b”:“122/4”
}],
},
{
“事件类型”:“体育”,
“isresult”:“0”,
“结果”:“优胜者a队”,
},
{
“项目类型”:“田径”,
“isresult”:“1”,
“结果”:[{
“1”:“Xjdjd”
}, {
“2”:“Jxjxj”
}, {
“3”:“Dhdj”
}],
}
]
})
{{i.a}}
{{i.b}
{{item.result}
{{key}}:{{value}
这与其他人的答案相去甚远
我做了一个函数,可以对这些值进行排序
下面是对项目值进行排序的函数
$scope.sortIsResult = function(item){
var result = '';
if(item.isresult==='0'){
result = item.result;
} else if (item.isresult==='1') {
if(item['event-type'].trim()==='sports'){
result = 'a:' + JSON.parse(item.result)[0]['a'] + '\n'
+ 'b:' + JSON.parse(item.result)[0]['b'];
} else if(item['event-type'].trim()==='athletics'){
result = '1:' + JSON.parse(item.result)[0]['1'] + '\n'
+ '2:' + JSON.parse(item.result)[1]['2'] + '\n'
+ '3:' + JSON.parse(item.result)[2]['3'];
}
}
return result;
};
也许这看起来有些头晕,但我认为使用“ng if”有局限性
所以我喜欢使用函数
我希望这能对您有所帮助。:)
很遗憾,此函数的“\n”无效
也许你需要其他方法来断线。这与其他人的答案相去甚远
我做了一个函数,可以对这些值进行排序
下面是对项目值进行排序的函数
$scope.sortIsResult = function(item){
var result = '';
if(item.isresult==='0'){
result = item.result;
} else if (item.isresult==='1') {
if(item['event-type'].trim()==='sports'){
result = 'a:' + JSON.parse(item.result)[0]['a'] + '\n'
+ 'b:' + JSON.parse(item.result)[0]['b'];
} else if(item['event-type'].trim()==='athletics'){
result = '1:' + JSON.parse(item.result)[0]['1'] + '\n'
+ '2:' + JSON.parse(item.result)[1]['2'] + '\n'
+ '3:' + JSON.parse(item.result)[2]['3'];
}
}
return result;
};
也许这看起来有些头晕,但我认为使用“ng if”有局限性
所以我喜欢使用函数
我希望这能对您有所帮助。:)
很遗憾,此函数的“\n”无效
也许您需要其他方法来换行。您可以创建一个helper方法来检查whenisResult==1
,如果数组存在,此方法将返回数组,然后在您的ng repeat
中调用该方法并在其上循环。您能做一个简单的小提琴来解释它吗?要做到这一点,我必须查看完整的代码。您可以仅从api中筛选isResult==1,然后将数据传递给控制器以在前端获得该数据,你会在这里发布你的api代码吗?我将帮助您解决问题。您可以创建一个helper方法,用于检查何时isResult===1
,如果数组存在,此方法将返回数组,然后在您的ng repeat
中调用该方法并在其上循环。您能做一个简单的小提琴来解释它吗?要做到这一点,我必须查看完整的代码。您可以仅从api中筛选isResult==1,然后将数据传递给控制器以在前端获得该数据,你会在这里发布你的api代码吗?我会帮你解决的