From 9767f7bdd3e1ce6f65bdea992d67369ead13d813 Mon Sep 17 00:00:00 2001 From: Igor Minar Date: Fri, 10 Aug 2012 15:38:05 -0700 Subject: fix(option): support option elements in datalist previously we expected to find option elements only within select element and if that was not the case we throw an error. This made it impossible to include datalist element with nested option elements in the template. Closes #1165 --- src/ng/directive/select.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/ng/directive/select.js b/src/ng/directive/select.js index 27a92c48..77b2f46d 100644 --- a/src/ng/directive/select.js +++ b/src/ng/directive/select.js @@ -521,7 +521,6 @@ var optionDirective = ['$interpolate', function($interpolate) { return { restrict: 'E', priority: 100, - require: '^select', compile: function(element, attr) { if (isUndefined(attr.value)) { var interpolateFn = $interpolate(element.text(), true); @@ -530,8 +529,13 @@ var optionDirective = ['$interpolate', function($interpolate) { } } - return function (scope, element, attr, selectCtrl) { - if (selectCtrl.databound) { + return function (scope, element, attr) { + var selectCtrlName = '$selectController', + parent = element.parent(), + selectCtrl = parent.data(selectCtrlName) || + parent.parent().data(selectCtrlName); // in case we are in optgroup + + if (selectCtrl && selectCtrl.databound) { // For some reason Opera defaults to true and if not overridden this messes up the repeater. // We don't want the view to drive the initialization of the model anyway. element.prop('selected', false); -- cgit v1.2.3