aboutsummaryrefslogtreecommitdiffstats
path: root/src/Angular.js
diff options
context:
space:
mode:
authorChirayu Krishnappa2013-06-24 20:45:31 -0700
committerChirayu Krishnappa2013-06-24 20:46:32 -0700
commitcefdaf131dd373cf06907e241a88339452c51313 (patch)
tree65743d746ed70ae1c856690c964a51cde78ba98b /src/Angular.js
parent38deedd6e3d806eb8262bb43f26d47245f6c2739 (diff)
downloadangular.js-cefdaf131dd373cf06907e241a88339452c51313.tar.bz2
fix($parse): move global getter out of parse.js
Diffstat (limited to 'src/Angular.js')
-rw-r--r--src/Angular.js27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/Angular.js b/src/Angular.js
index 1a06815c..c5e54c98 100644
--- a/src/Angular.js
+++ b/src/Angular.js
@@ -1078,3 +1078,30 @@ function assertArgFn(arg, name, acceptArrayAnnotation) {
(arg && typeof arg == 'object' ? arg.constructor.name || 'Object' : typeof arg));
return arg;
}
+
+/**
+ * Return the value accessible from the object by path. Any undefined traversals are ignored
+ * @param {Object} obj starting object
+ * @param {string} path path to traverse
+ * @param {boolean=true} bindFnToScope
+ * @returns value as accessible by path
+ */
+//TODO(misko): this function needs to be removed
+function getter(obj, path, bindFnToScope) {
+ if (!path) return obj;
+ var keys = path.split('.');
+ var key;
+ var lastInstance = obj;
+ var len = keys.length;
+
+ for (var i = 0; i < len; i++) {
+ key = keys[i];
+ if (obj) {
+ obj = (lastInstance = obj)[key];
+ }
+ }
+ if (!bindFnToScope && isFunction(obj)) {
+ return bind(lastInstance, obj);
+ }
+ return obj;
+}