From 00ca67e4befffed00ecee81bd1ce903fe01f542a Mon Sep 17 00:00:00 2001 From: Vojta Jina Date: Sat, 30 Oct 2010 20:57:13 +0200 Subject: Issue #51: Update extensionMap() If user override existing extension, angular properties ($) will be preserved. This piece of logic could be refactored into separate method: Something like we have extend(), addMissingProperties() - I can't find a name for this method... Closes #51 --- src/Angular.js | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src') diff --git a/src/Angular.js b/src/Angular.js index dbd662ce..16b31d4b 100644 --- a/src/Angular.js +++ b/src/Angular.js @@ -281,11 +281,18 @@ function inherit(parent, extra) { function noop() {} function identity($) {return $;} function valueFn(value) {return function(){ return value; };} + function extensionMap(angular, name, transform) { var extPoint; return angular[name] || (extPoint = angular[name] = function (name, fn, prop){ name = (transform || identity)(name); if (isDefined(fn)) { + if (isDefined(extPoint[name])) { + foreach(extPoint[name], function(property, key) { + if (key.charAt(0) == '$' && isUndefined(fn[key])) + fn[key] = property; + }); + } extPoint[name] = extend(fn, prop || {}); } return extPoint[name]; -- cgit v1.2.3