我有这个JSON文件,我用$http()
来获取。它是这样的:
[{
"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"
}]
我需要使用ng-repeat
显示此内容,但仅当其属性(布尔值){{item.result}}
为isresult
时才显示0
。如果isresult === 1
和event-type=='sports'
,我需要ng-repeat
所需的数组。
我做了类似的事情:
<th ng-if="item.isresult === 1 && item[event-type] === 'sports'">
<div ng-repeat="i in item.result">
{{i.a}}<br>{{i.b}}
</div>
</th>
此外,如果event-type === 'athletics'
,我会在result
[{"1":"Xjdjd"}, {"2":"Jxjxj"}, {"3":"Dhdj"}]
我该如何解决?
答案 0 :(得分:0)
如果我理解你的问题,你可以尝试这样的事情:
<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>
请注意, JSON 对象中的result
仅限数组,{{1}的字符串也是。所以检查一下或解析它到一个数组。
答案 1 :(得分:0)
angular.module('app', []).controller('ctrl', function($scope) {
$scope.data = [{
"event-type": "sports",
"isresult": "1",
"result": [{
"a": "121/5",
"b": "122/4"
}],
},
{
"event-type": "sports",
"isresult": "0",
"result": "winner team-a",
},
{
"event-type": "athletics",
"isresult": "1",
"result": [{
'1': 'Xjdjd'
}, {
'2': 'Jxjxj'
}, {
'3': 'Dhdj'
}],
}
]
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app='app' ng-controller='ctrl'>
<div ng-repeat='item in data'>
<div ng-if="item.isresult == 1 && item['event-type'] === 'sports'">
<div ng-repeat="i in item.result">
{{i.a}}<br>{{i.b}}
</div>
</div>
<div ng-if="item.isresult == 0">
{{item.result}}
</div>
<div ng-if="item['event-type'] === 'athletics'">
<div ng-repeat="i in item.result">
<div ng-repeat="(key, value) in i">
{{key}}:{{value}}
</div>
</div>
</div>
<hr ng-if='!$last'>
</div>
</div>
&#13;
答案 2 :(得分:0)
这远非其他人的答案。
我已经制作了一个对这些值进行排序的功能。
下面是项目的排序值的功能。
$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;
};
也许这看起来很晕眩,但我认为使用&nbsp; ng-if&#39;,
会有限制所以我喜欢使用功能。
我希望这对你有所帮助。 :)
不幸的是,&#39; \ n&#39;这个功能不起作用。
也许你还需要其他方法来打破界限。