Skip to content

Commit e60daba

Browse files
author
skozlov
committed
Fixed problem when grid-item contains directive with ng-transclude in template.
1 parent 33a81fc commit e60daba

File tree

9 files changed

+70
-66
lines changed

9 files changed

+70
-66
lines changed

demo/100k/index.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -207,14 +207,14 @@ <h3>Angular Data Grid 100k Example</h3>
207207
</div>
208208
</body>
209209
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
210-
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
211-
<script src="https://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.14.3.js"></script>
212-
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-animate.min.js"></script>
213-
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-aria.min.js"></script>
214-
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-messages.min.js"></script>
210+
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular.min.js"></script>
211+
<script src="https://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-2.5.0.js"></script>
212+
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-animate.min.js"></script>
213+
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-aria.min.js"></script>
214+
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-messages.min.js"></script>
215215
<script type='text/javascript' src='//cdnjs.cloudflare.com/ajax/libs/angular-loading-bar/0.7.1/loading-bar.min.js'></script>
216216
<script src="../../dist/pagination.min.js"></script>
217-
<script src="../../dist/dataGrid.js"></script>
217+
<script src="../../dist/dataGrid.min.js"></script>
218218
<script src="js/demoApp.js"></script>
219219

220220
</html>

demo/bootstrap/index.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<button id="single-button" type="button" class="btn btn-info" uib-dropdown-toggle>
1717
Change Theme <span class="caret"></span>
1818
</button>
19-
<ul class="uib-dropdown-menu" aria-labelledby="simple-dropdown">
19+
<ul class="dropdown-menu" aria-labelledby="simple-dropdown">
2020
<li>
2121
<a href="index.html"><strong>Bootstrap Design</strong></a>
2222
</li>
@@ -227,11 +227,11 @@ <h4>Additional Demos</h4>
227227
</div>
228228
</body>
229229
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
230-
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
231-
<script src="https://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.14.3.js"></script>
232-
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-animate.min.js"></script>
233-
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-aria.min.js"></script>
234-
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-messages.min.js"></script>
230+
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular.min.js"></script>
231+
<script src="https://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-2.5.0.js"></script>
232+
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-animate.min.js"></script>
233+
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-aria.min.js"></script>
234+
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-messages.min.js"></script>
235235
<script src="../../dist/pagination.min.js"></script>
236236
<script src="../../dist/dataGrid.min.js"></script>
237237
<script src="js/demoApp.js"></script>

demo/bootstrap/js/serverPaginationApp.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
};
2222
$scope.UI = {};
2323
$scope.gridActions = {};
24-
myAppFactory.getStatuses().success(function (resp) {
25-
$scope.UI.statusOptions = resp;
24+
myAppFactory.getStatuses().then(function (resp) {
25+
$scope.UI.statusOptions = resp.data;
2626
});
2727
}
2828

@@ -34,8 +34,8 @@
3434
};
3535

3636
function getOrdersData(params, callback) {
37-
$http.get(herokuDomain + '/orders' + params).success(function (response) {
38-
callback(response.orders, response.ordersCount);
37+
$http.get(herokuDomain + '/orders' + params).then(function (response) {
38+
callback(response.data.orders, response.data.ordersCount);
3939
});
4040
}
4141

demo/bootstrap/multiple.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -221,13 +221,13 @@ <h2>Second Grid</h2>
221221
</div>
222222
</body>
223223
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
224-
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
225-
<script src="https://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.14.3.js"></script>
226-
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-animate.min.js"></script>
227-
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-aria.min.js"></script>
228-
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-messages.min.js"></script>
224+
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular.min.js"></script>
225+
<script src="https://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-2.5.0.js"></script>
226+
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-animate.min.js"></script>
227+
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-aria.min.js"></script>
228+
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-messages.min.js"></script>
229229
<script src="../../dist/pagination.min.js"></script>
230-
<script src="../../dist/dataGrid.js"></script>
230+
<script src="../../dist/dataGrid.min.js"></script>
231231
<script src="js/multipleApp.js"></script>
232232

233233
</html>

demo/bootstrap/server-pagination.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -211,11 +211,11 @@ <h3>Angular Data Grid Server Pagination</h3>
211211
</body>
212212

213213
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script><!-- load jquery -->
214-
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
215-
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-animate.min.js"></script>
216-
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-aria.min.js"></script>
217-
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-messages.min.js"></script>
218-
<script src="https://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.14.3.js"></script>
214+
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular.min.js"></script>
215+
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-animate.min.js"></script>
216+
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-aria.min.js"></script>
217+
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-messages.min.js"></script>
218+
<script src="https://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-2.5.0.js"></script>
219219

220220
<script src="../../dist/pagination.min.js"></script>
221221
<script src="../../dist/dataGrid.min.js"></script>

demo/material/index.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -181,10 +181,10 @@ <h4>Angular Data Grid sample using Material Design styling</h4>
181181
</div>
182182
</body>
183183

184-
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
185-
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-animate.min.js"></script>
186-
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-aria.min.js"></script>
187-
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-messages.min.js"></script>
184+
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular.min.js"></script>
185+
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-animate.min.js"></script>
186+
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-aria.min.js"></script>
187+
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-messages.min.js"></script>
188188
<script src="http://ajax.googleapis.com/ajax/libs/angular_material/1.0.0/angular-material.min.js"></script>
189189
<script src="../../dist/pagination.min.js"></script>
190190
<script src="../../dist/dataGrid.min.js"></script>

dist/dataGrid.js

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,23 @@
282282
});
283283
}
284284
}])
285+
.directive('gridItem', ['$compile', function ($compile) {
286+
return {
287+
restrict: 'EA',
288+
terminal:true,
289+
scope: false,
290+
link: function ($scope, element, attrs, ctrl, transclude) {
291+
if ($scope.serverPagination) {
292+
element.attr('ng-repeat', "item in filtered");
293+
} else {
294+
element.attr('ng-repeat', "item in filtered | startFrom:(paginationOptions.currentPage-1)*paginationOptions.itemsPerPage | limitTo:paginationOptions.itemsPerPage track by $index");
295+
}
296+
element.removeAttr('grid-item');
297+
var html = element[0].outerHTML;
298+
element.replaceWith($compile(html)($scope));
299+
}
300+
}
301+
}])
285302
.directive('gridData', ['$compile', '$animate', function ($compile) {
286303
return {
287304
restrict: 'EA',
@@ -290,18 +307,16 @@
290307
scope: true,
291308
controller: 'gridController',
292309
link: function ($scope, $element, attrs) {
293-
var sorting = [],
294-
filters = [],
295-
rows = [],
310+
var filters = [],
296311
directiveElement = $element.parent(),
297312
gridId = attrs.id,
298313
serverPagination = attrs.serverPagination === 'true';
314+
$scope.serverPagination = serverPagination;
299315

300316

301317
angular.forEach(angular.element(directiveElement[0].querySelectorAll('[sortable]')), function (sortable) {
302318
var element = angular.element(sortable),
303319
predicate = element.attr('sortable');
304-
sorting.push(element);
305320
element.attr('ng-class', "{'sort-ascent' : sortOptions.predicate ==='" +
306321
predicate + "' && sortOptions.direction === 'asc', 'sort-descent' : sortOptions.predicate === '" +
307322
predicate + "' && sortOptions.direction === 'desc'}");
@@ -348,19 +363,6 @@
348363
});
349364
});
350365

351-
angular.forEach(angular.element(directiveElement[0].querySelectorAll('[grid-item]')), function (row) {
352-
var element = angular.element(row);
353-
rows.push(element);
354-
if (serverPagination) {
355-
element.attr('ng-repeat', "item in filtered");
356-
} else {
357-
element.attr('ng-repeat', "item in filtered | startFrom:(paginationOptions.currentPage-1)*paginationOptions.itemsPerPage | limitTo:paginationOptions.itemsPerPage track by $index");
358-
}
359-
$compile(element)($scope);
360-
});
361-
362-
$scope.sorting = sorting;
363-
$scope.rows = rows;
364366
$scope.filters = filters;
365367
}
366368
}

0 commit comments

Comments
 (0)