diff options
Diffstat (limited to 'src/ng/directive/booleanAttrs.js')
| -rw-r--r-- | src/ng/directive/booleanAttrs.js | 29 |
1 files changed, 8 insertions, 21 deletions
diff --git a/src/ng/directive/booleanAttrs.js b/src/ng/directive/booleanAttrs.js index 1468008c..b0c1b78f 100644 --- a/src/ng/directive/booleanAttrs.js +++ b/src/ng/directive/booleanAttrs.js @@ -284,7 +284,6 @@ forEach(BOOLEAN_ATTR, function(propName, attrName) { priority: 100, compile: function() { return function(scope, element, attr) { - attr.$$observers[attrName] = []; scope.$watch(attr[normalized], function(value) { attr.$set(attrName, !!value); }); @@ -301,27 +300,15 @@ forEach(['src', 'href'], function(attrName) { ngAttributeAliasDirectives[normalized] = function() { return { priority: 99, // it needs to run after the attributes are interpolated - compile: function() { - return function(scope, element, attr) { - var value = attr[normalized]; - if (value == undefined) { - // undefined value means that the directive is being interpolated - // so just register observer - attr.$$observers[attrName] = []; - attr.$observe(normalized, function(value) { - attr.$set(attrName, value); + link: function(scope, element, attr) { + attr.$observe(normalized, function(value) { + attr.$set(attrName, value); - // on IE, if "ng:src" directive declaration is used and "src" attribute doesn't exist - // then calling element.setAttribute('src', 'foo') doesn't do anything, so we need - // to set the property as well to achieve the desired effect - if (msie) element.prop(attrName, value); - }); - } else { - // value present means that no interpolation, so copy to native attribute. - attr.$set(attrName, value); - element.prop(attrName, value); - } - }; + // on IE, if "ng:src" directive declaration is used and "src" attribute doesn't exist + // then calling element.setAttribute('src', 'foo') doesn't do anything, so we need + // to set the property as well to achieve the desired effect + if (msie) element.prop(attrName, value); + }); } }; }; |
