From 008a1ecd7b44dff742b9acef4f4b85afadd95f22 Mon Sep 17 00:00:00 2001 From: Kevin Ingersoll Date: Fri, 22 May 2015 14:39:44 -0700 Subject: [PATCH] Support `disabled` attribute on select options --- src/directives/model/select.js | 3 +++ test/unit/specs/directives/model_spec.js | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/directives/model/select.js b/src/directives/model/select.js index c7a8ce998..90b9cdd56 100644 --- a/src/directives/model/select.js +++ b/src/directives/model/select.js @@ -107,6 +107,9 @@ function buildOptions (parent, options) { } else { el.text = op.text el.value = op.value + if (op.disabled) { + el.disabled = true + } } } else { el = document.createElement('optgroup') diff --git a/test/unit/specs/directives/model_spec.js b/test/unit/specs/directives/model_spec.js index 1da70eb58..3694d7809 100644 --- a/test/unit/specs/directives/model_spec.js +++ b/test/unit/specs/directives/model_spec.js @@ -245,6 +245,7 @@ if (_.inBrowser) { data: { test: 'b', opts: [ + { text: 'Select an option', value: null, disabled: true }, { text: 'A', value: 'a' }, { text: 'B', value: 'b' } ] @@ -252,12 +253,15 @@ if (_.inBrowser) { template: '' }) expect(el.firstChild.innerHTML).toBe( + '' + '' + '' ) var opts = el.firstChild.options + expect(opts[0].disabled).toBe(true) expect(opts[0].selected).toBe(false) - expect(opts[1].selected).toBe(true) + expect(opts[1].selected).toBe(false) + expect(opts[2].selected).toBe(true) }) it('select + options + optgroup', function () {