Skip to content
This repository was archived by the owner on Oct 2, 2019. It is now read-only.

Commit 9614b86

Browse files
committed
Merge pull request #91 from angular-ui/fix-transclude
Fixes transclusion on angular v1.2.18+
2 parents 5f62a6a + d89224e commit 9614b86

File tree

6 files changed

+29
-19
lines changed

6 files changed

+29
-19
lines changed

bower.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@
1616
"test"
1717
],
1818
"dependencies": {
19-
"angular": "1.2.0 - 1.2.17"
19+
"angular": "~1.2"
2020
},
2121
"devDependencies": {
2222
"jquery": "~1.11",
23-
"angular-sanitize": "1.2.0 - 1.2.17",
24-
"angular-mocks": "1.2.0 - 1.2.17"
23+
"angular-sanitize": "~1.2",
24+
"angular-mocks": "~1.2"
2525
}
2626
}

examples/demo.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
</script>
1919
<![endif]-->
2020

21-
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.js"></script>
22-
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular-sanitize.js"></script>
21+
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.18/angular.js"></script>
22+
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.18/angular-sanitize.js"></script>
2323
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.css">
2424

2525
<!-- ui-select files -->

src/bootstrap/choices.tpl.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
role="menu" aria-labelledby="dLabel"
33
ng-show="$select.items.length > 0">
44
<li class="ui-select-choices-row" ng-class="{active: $select.activeIndex === $index}">
5-
<a href="javascript:void(0)" ng-transclude></a>
5+
<a class="ui-select-choices-row-inner" href="javascript:void(0)"></a>
66
</li>
77
</ul>

src/select.js

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -380,8 +380,8 @@ angular.module('ui.select', [])
380380
}])
381381

382382
.directive('uiSelectChoices',
383-
['uiSelectConfig', 'RepeatParser', 'uiSelectMinErr',
384-
function(uiSelectConfig, RepeatParser, uiSelectMinErr) {
383+
['uiSelectConfig', 'RepeatParser', 'uiSelectMinErr', '$compile',
384+
function(uiSelectConfig, RepeatParser, uiSelectMinErr, $compile) {
385385

386386
return {
387387
restrict: 'EA',
@@ -396,17 +396,27 @@ angular.module('ui.select', [])
396396

397397
compile: function(tElement, tAttrs) {
398398
var repeat = RepeatParser.parse(tAttrs.repeat);
399+
return function link(scope, element, attrs, $select, transcludeFn) {
400+
401+
var rows = element.querySelectorAll('.ui-select-choices-row');
402+
if (rows.length !== 1) {
403+
throw uiSelectMinErr('rows', "Expected 1 .ui-select-choices-row but got '{0}'.", rows.length);
404+
}
399405

400-
var rows = tElement.querySelectorAll('.ui-select-choices-row');
401-
if (rows.length !== 1) {
402-
throw uiSelectMinErr('rows', "Expected 1 .ui-select-choices-row but got '{0}'.", rows.length);
403-
}
406+
rows.attr('ng-repeat', RepeatParser.getNgRepeatExpression(repeat.lhs, '$select.items', repeat.trackByExp))
407+
.attr('ng-mouseenter', '$select.activeIndex = $index')
408+
.attr('ng-click', '$select.select(' + repeat.lhs + ')');
404409

405-
rows.attr('ng-repeat', RepeatParser.getNgRepeatExpression(repeat.lhs, '$select.items', repeat.trackByExp))
406-
.attr('ng-mouseenter', '$select.activeIndex = $index')
407-
.attr('ng-click', '$select.select(' + repeat.lhs + ')');
408410

409-
return function link(scope, element, attrs, $select) {
411+
transcludeFn(function(clone) {
412+
var rowsInner = element.querySelectorAll('.ui-select-choices-row-inner');
413+
if (rowsInner.length !== 1)
414+
throw uiSelectMinErr('rows', "Expected 1 .ui-select-choices-row-inner but got '{0}'.", rowsInner.length);
415+
416+
rowsInner.append(clone);
417+
$compile(element)(scope);
418+
});
419+
410420
$select.parseRepeatAttr(attrs.repeat);
411421

412422
scope.$watch('$select.search', function() {
@@ -455,6 +465,6 @@ angular.module('ui.select', [])
455465
}
456466

457467
return function(matchItem, query) {
458-
return query ? matchItem.replace(new RegExp(escapeRegexp(query), 'gi'), '<span class="ui-select-highlight">$&</span>') : matchItem;
468+
return query && matchItem ? matchItem.replace(new RegExp(escapeRegexp(query), 'gi'), '<span class="ui-select-highlight">$&</span>') : matchItem;
459469
};
460470
});

src/select2/choices.tpl.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<ul class="ui-select-choices ui-select-choices-content select2-results">
22
<li class="ui-select-choices-row" ng-class="{'select2-highlighted': $select.activeIndex === $index}">
3-
<div class="select2-result-label" ng-transclude></div>
3+
<div class="select2-result-label ui-select-choices-row-inner"></div>
44
</li>
55
</ul>

src/selectize/choices.tpl.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<div class="ui-select-choices-content selectize-dropdown-content">
33
<div class="ui-select-choices-row"
44
ng-class="{'active': $select.activeIndex === $index}">
5-
<div class="option" data-selectable ng-transclude></div>
5+
<div class="option ui-select-choices-row-inner" data-selectable></div>
66
</div>
77
</div>
88
</div>

0 commit comments

Comments
 (0)