Angular: retention stats

http://angularjs.org/

by markokristian

HTML

<script src="http://code.angularjs.org/angular-1.0.1.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.1/lodash.min.js"></script>
<div ng-controller="someController">

  <pre>{{ vm | json }}</pre>

  <table>
    <thead>
      <tr>
        <td></td>
        <td ng-repeat="p in vm.top">{{ p }}</td>
      </tr>
    </thead>
    <tbody ng-repeat="(measure, profileValues) in vm.measures">
      <tr>
        <td><b>{{ measure }}</b></td>
      </tr>
      <tr ng-repeat="statKey in vm.statKeys">
        <td>{{ statKey }}</td>
        <td ng-repeat="profileId in vm.top">
          {{ profileValues[profileId].stats[statKey] }}
        </td>
      </tr>
    </tbody>
  </table>
</div>

CSS

table tr td {
  padding: 10px;
}

JavaScript

var app = angular.module('myApp', []);

app.service('someService', someService);
someService.$inject = [];

function someService() {

  var data = [{
    "comP_ID": 9,
    "fileNum": "T2015",
    "croRoute_DT": "2016-03-30T00:00:00",
    "checklisTs": [],
    "assoC_INC_OFFs": [{
      "aiO_ID": 14,
      "comP_ID": 9,
      "ofcnum": 1,
      "linK_TYPE": "Officer",
      "allegatioNs": [{
        "alleG_ID": 33,
        "iabAllegation": "allegation1",
        "disciplinedetaiLs": [{
          "disciplineDetail_ID": 9,
          "penalty": null

        }, {
          "disciplineDetail_ID": 10,
          "penalty": null

        }]
      }, {
        "alleG_ID": 59,
        "iabAllegation": "allegation12",
        "disciplinedetaiLs": []
      }, {
        "alleG_ID": 1061,
        "iabAllegation": null,
        "disciplinedetaiLs": []
      }],
      "officerinvolveDs": null
    }, {
      "aiO_ID": 55,
      "comP_ID": 9,
      "ofcnum": 1,
      "linK_TYPE": "Officer",
      "allegatioNs": [{
        "alleG_ID": 27,
        "iabAllegation": "allegation11",
        "disciplinedetaiLs": []
      }, {
        "alleG_ID": 51,
        "iabAllegation": "allegation2",
        "disciplinedetaiLs": []
      }, {
        "alleG_ID": 1056,
        "iabAllegation": "allegation3",
        "disciplinedetaiLs": []
      }, {
        "alleG_ID": 60,
        "iabAllegation": null,
        "disciplinedetaiLs": []
      }],
      "officerinvolveDs": null
    }, {
      "aiO_ID": 56,
      "comP_ID": 9,
      "ofcnum": 2,
      "linK_TYPE": "Officer",
      "allegatioNs": [{
        "alleG_ID": 28,
        "iabAllegation": "allegation11",
        "disciplinedetaiLs": []
      }, {
        "alleG_ID": 29,
        "iabAllegation": "allegation2",
        "disciplinedetaiLs": []
      }],
      "officerinvolveDs": null
    }]
  }];
  return {
    'data': data
  };
}

app.controller('someController', SomeController);
SomeController.$inject = ['$scope', 'someService'];

function...