diff options
| -rw-r--r-- | src/widgets.js | 4 | ||||
| -rw-r--r-- | test/widgetsSpec.js | 14 |
2 files changed, 18 insertions, 0 deletions
diff --git a/src/widgets.js b/src/widgets.js index f90b29a9..cf65cd40 100644 --- a/src/widgets.js +++ b/src/widgets.js @@ -545,6 +545,10 @@ angularWidget('option', function(){ var isMultiple = select[0].type == 'select-multiple'; var scope = retrieveScope(select); var model = modelAccessor(scope, select); + + //if parent select doesn't have a name, don't bother doing anything any more + if (!model) return; + var formattedModel = modelFormattedAccessor(scope, select); var view = isMultiple ? optionsAccessor(scope, select) diff --git a/test/widgetsSpec.js b/test/widgetsSpec.js index 0eabc738..2812614f 100644 --- a/test/widgetsSpec.js +++ b/test/widgetsSpec.js @@ -463,6 +463,20 @@ describe("widget", function(){ expect(scope.selection).toBe(scope.objs[0]); }); + it('should compile children of a select without a name, but not create a model for it', + function() { + compile('<select>' + + '<option selected="true">{{a}}</option>' + + '<option value="">{{b}}</option>' + + '<option>C</option>' + + '</select>'); + scope.a = 'foo'; + scope.b = 'bar'; + scope.$eval(); + + expect(scope.$element.text()).toBe('foobarC'); + }) + }); describe('select-multiple', function(){ |
