2017-11-30 9 views
1

私は$http()を使用してこのJSONファイルを取得しています。私はそのプロパティ(ブール値)isresult0ある場合にのみng-repeatが、表示{{item.result}}を使用して、これを表示する必要がいくつかの条件でng-repeatの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" 
}] 

:それはこのようなものです。 isresult === 1event-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'場合、私はそれについて移動するにはどうすればよい

[{"1":"Xjdjd"}, {"2":"Jxjxj"}, {"3":"Dhdj"}]のように見えるのアレイにresultを得る:

は、私はこのような何かをしましたか?私が正しくあなたの問題を理解している場合は、このような何かを試すことができ

+0

'isResult === 1 'のときにこのメソッドが配列を返し、' ng-repeat'にメソッドを呼び出してループするヘルパーメソッドを作成できます。 –

+0

あなたはそれを説明するために簡単なフィドルを作れますか? –

+0

これを行うには、完全なコードを参照する必要があります。 –

答えて

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' 
 
     }], 
 
    } 
 
    ] 
 
})
<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>

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> 

は覚えておいてください、あなたのresultでJSONオブジェクトがアレイに仮定のみ、それはitem.isresult=='1'ため文字列のように見えますまた、したがって、を解析してを解析して配列に入れてください。

0

これは、はるかに他の人の答えからです。

私はその値をソートする機能を作っています。以下

Here's my fiddle

項目の値をソートすることが機能です。

$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-場合は、」

を使用して、限界があると思います。

私はこれがあなたに少し役立つことを願っています。 :)

残念ながら、この機能の '\ n'は機能しませんでした。

多分、改行を行うには別の方法が必要です。

関連する問題