Angular: V5. Multiple ng-repeat tables (Not filling DOM w. LVL2 and 3)
DOM NOT filled with all Level 2 and 3 tables.
by Pixic
HTML
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js"></script>
<link rel="stylesheet" href="http://twitter.github.com/bootstrap/assets/css/bootstrap.css">
<script src="http://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.4.0.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<div ng-controller="myController">
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 row-fluid">
<!-- START $scope.[model] updates -->
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 well well-small">
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
<div>
<p class="nav-header">LVL1 collapse/expand tableRow</p>
<p class="small-caps">level1Expanded: <b>{{level1Expanded}}</b>
<br/>level1IndexExpandedCurr: <b>{{level1IndexExpandedCurr}}</b>
<br/>storeIdExpanded: <b>{{storeIdExpanded}}</b>
</p>
</div>
<div>
<p class="nav-header">LVL1 collapse/expand tableRow</p>
<p class="small-caps">dayDataCollapse: {{dayDataCollapse}}</p>
</div>
</div>
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
<p class="nav-header">LVL2 collapse/expand tableRow</p>
<p class="small-caps">tableRowExpanded: <b>{{level1Expanded}}</b>
<br/>level1IndexExpandedCurr: <b>{{level1IndexExpandedCurr}}</b>
<br/>storeIdExpanded: <b>{{storeIdExpanded}}</b>
</p>
</div>
</div>
<!-- END $scope.[model] updates -->
<!-- START TABLE -->
<div>
<table class="table table-hover table-condensed table-striped">
<thead class="levelOne">
...
CSS
body {
padding: 10px;
padding-right:30px;
}
table {
border-collapse: separate;
border-spacing: 0 5px;
padding: 0px;
}
.levelOne {
background-color: #006DCC;
color: white;
}
.levelTwo {
background-color: #FF8C00;
color: black;
}
tr td:first-child, tr th:first-child {
border-top-left-radius: 6px;
border-bottom-left-radius: 6px;
}
tr td:last-child, tr th:last-child {
border-top-right-radius: 6px;
border-bottom-right-radius: 6px;
}
.clickableRow {
cursor: pointer;
}
p, textarea {
font-variant: small-caps !important;
text-rendering: auto;
}
td, th {
font-size: 8pt;
}
table {
padding: 0px;
}
JavaScript
var myApp = angular.module('myApp', ['ui.bootstrap']);
myApp.controller('myController', function ($scope) {
// Some variables for showing which are expanded/collapsed
$scope.level1Expanded = false;
$scope.level1IndexExpandedCurr = "";
$scope.level1IndexExpandedPrev = "";
$scope.storeIdExpanded = "";
//
$scope.dayDataCollapseFn = function () {
$scope.dayDataCollapse = [];
for (var i = 0; i < $scope.storeDataModel.storedata.length; i += 1) {
$scope.dayDataCollapse.push(false);
}
};
$scope.level2Expanded = false;
$scope.level2IndexExpandedCurr = "";
$scope.level2IndexExpandedPrev = "";
$scope.dateIExpanded = "";
$
/* HELP FUNCTION - to check if there are any other levels below current level,
i.e. looking for arrays in JSON.
NOT FINISHED - CHECK IF POSSIBLE....
*/
function checkLevels(level) {
if ( typeof level.related !== 'undefined' ) {
return
}
}
$scope.selectTableRow = function (index, storeId) {
if (typeof $scope.dayDataCollapse === 'undefined') {
$scope.dayDataCollapseFn();
}
if ($scope.tableRowExpanded === false && $scope.tableRowIndexExpandedCurr === "" && $scope.storeIdExpanded === "") {
$scope.tableRowIndexExpandedPrev = "";
$scope.tableRowExpanded = true;
$scope.tableRowIndexExpandedCurr = index;
$scope.storeIdExpanded = storeId;
$scope.dayDataCollapse[index] = true;
} else if ($scope.tableRowExpanded === true) {
if ($scope.tableRowIndexExpandedCurr === index && $scope.storeIdExpanded === storeId) {
$scope.tableRowExpanded = false;
$scope.tableRowIndexExpandedCurr = "";
$scope.storeIdExpanded = "";
$scope.dayDataCollapse[index] = false;
} else {
$scope.tableRowIndexExpandedPrev =...