Skip to content
This repository has been archived by the owner on Sep 5, 2024. It is now read-only.

Commit

Permalink
fix(select): fix updating of values on change and init
Browse files Browse the repository at this point in the history
closes #1654
  • Loading branch information
rschmukler committed Feb 25, 2015
1 parent 8488d36 commit 0e21b3b
Showing 1 changed file with 13 additions and 4 deletions.
17 changes: 13 additions & 4 deletions src/components/select/select.js
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ function SelectDirective($mdSelect, $mdUtil, $mdTheming, $interpolate, $compile,
mdSelectCtrl.setIsPlaceholder(!text);
var newText = text || attr.placeholder;
var target = customLabel ? labelEl : labelEl.children().eq(0);
target.html(newText);
target.text(newText);
};

mdSelectCtrl.setIsPlaceholder = function(val) {
Expand Down Expand Up @@ -181,7 +181,6 @@ function SelectDirective($mdSelect, $mdUtil, $mdTheming, $interpolate, $compile,
fakeSelectEl = $compile(fakeSelectEl)(fakeSelectScope);
var fakeSelectCtrl = fakeSelectEl.controller('mdSelectMenu');
fakeSelectScope.$$postDigest(function() {
ngModel.$render();
fakeSelectEl.scope().$destroy();
});
} else {
Expand Down Expand Up @@ -330,6 +329,13 @@ function SelectMenuDirective($parse, $mdUtil, $mdTheming) {
ngModel.$render = renderSingular;
}

if (self.mdSelect) {
$scope.$$postDigest(function() {
ngModel.$render();
self.mdSelect.setLabelText(self.selectedLabels());
});
}

function validateArray(modelValue, viewValue) {
// If a value is truthy but not an array, reject it.
// If value is undefined/falsy, accept that it's an empty array.
Expand Down Expand Up @@ -410,13 +416,11 @@ function SelectMenuDirective($parse, $mdUtil, $mdTheming) {
newSelectedHashes.forEach(function(hashKey, i) {
self.select(hashKey, newSelectedValues[i]);
});
self.mdSelect && self.mdSelect.setLabelText(self.selectedLabels());
}
function renderSingular() {
var value = self.ngModel.$viewValue || self.ngModel.$modelValue;
Object.keys(self.selected).forEach(self.deselect);
self.select( self.hashGetter(value), value );
self.mdSelect && self.mdSelect.setLabelText(self.selectedLabels());
}
}

Expand Down Expand Up @@ -679,6 +683,11 @@ function SelectProvider($$interimElementProvider) {
delete opts.disableTarget;
}

var mdSelect = opts.selectEl.controller('mdSelect');
if (mdSelect) {
mdSelect.setLabelText(opts.selectEl.controller('mdSelectMenu').selectedLabels());
}

return $mdUtil.transitionEndPromise(element).then(function() {
element.remove();
opts.backdrop && opts.backdrop.remove();
Expand Down

0 comments on commit 0e21b3b

Please sign in to comment.