diff --git a/app/assets/javascripts/discourse/components/combo-box.js.es6 b/app/assets/javascripts/discourse/components/combo-box.js.es6 index 625361550fc..5ab4807fa1e 100644 --- a/app/assets/javascripts/discourse/components/combo-box.js.es6 +++ b/app/assets/javascripts/discourse/components/combo-box.js.es6 @@ -14,8 +14,12 @@ export default Ember.Component.extend({ return result; }, + realNameProperty: function() { + return this.get('nameProperty') || 'name'; + }.property('nameProperty'), + render(buffer) { - const nameProperty = this.get('nameProperty') || 'name', + const nameProperty = this.get('realNameProperty'), none = this.get('none'); // Add none option if required @@ -64,6 +68,10 @@ export default Ember.Component.extend({ o.selected = !!$(o).attr('selected'); }); + // Workaround for contentChanged not being able to observe based on + // a passed-in attribute name + this.addObserver('content.@each.' + this.get('realNameProperty'), this.rerender); + $elem.select2({formatResult: this.comboTemplate, minimumResultsForSearch: 5, width: 'resolve'}); const castInteger = this.get('castInteger');