diff options
| author | Misko Hevery | 2010-07-19 12:29:24 -0700 |
|---|---|---|
| committer | Misko Hevery | 2010-07-19 12:29:24 -0700 |
| commit | 7e96af0fdd9af8c479992363f68578305df0337e (patch) | |
| tree | fccb29641d030f390db1250a98be5412af993e94 /src | |
| parent | cc097867f49673005d47a7f8f0cbe25f7d5c2163 (diff) | |
| download | angular.js-7e96af0fdd9af8c479992363f68578305df0337e.tar.bz2 | |
added equals method to angular.equals and $equals
Diffstat (limited to 'src')
| -rw-r--r-- | src/Angular.js | 28 | ||||
| -rw-r--r-- | src/AngularPublic.js | 1 | ||||
| -rw-r--r-- | src/apis.js | 3 |
3 files changed, 30 insertions, 2 deletions
diff --git a/src/Angular.js b/src/Angular.js index 07e9096b..e39e31c9 100644 --- a/src/Angular.js +++ b/src/Angular.js @@ -263,6 +263,32 @@ function copy(source, destination){ } } +function equals(o1, o2) { + if (o1 == o2) return true; + var t1 = typeof o1, t2 = typeof o2, length, key, keySet; + if (t1 == t2 && t1 == 'object') { + if (o1 instanceof Array) { + if ((length = o1.length) == o2.length) { + for(key=0; key<length; key++) { + if (!equals(o1[key], o2[key])) return false; + } + return true; + } + } else { + keySet = {}; + for(key in o1) { + if (key.charAt(0) !== '$' && !equals(o1[key], o2[key])) return false; + keySet[key] = true; + } + for(key in o2) { + if (key.charAt(0) !== '$' && keySet[key] !== true) return false; + } + return true; + } + } + return false; +} + function setHtml(node, html) { if (isLeafNode(node)) { if (msie) { @@ -333,7 +359,7 @@ function outerHTML(node) { function toBoolean(value) { if (value && value.length !== 0) { var v = lowercase("" + value); - value = !(v == 'f' || v == '0' || v == 'false' || v == 'no' || v == '[]'); + value = !(v == 'f' || v == '0' || v == 'false' || v == 'no' || v == 'n' || v == '[]'); } else { value = false; } diff --git a/src/AngularPublic.js b/src/AngularPublic.js index 7230c3e5..817a1f93 100644 --- a/src/AngularPublic.js +++ b/src/AngularPublic.js @@ -14,6 +14,7 @@ extend(angular, { 'scope': createScope, 'copy': copy, 'extend': extend, + 'equals': equals, 'foreach': foreach, 'noop':noop, 'bind':bind, diff --git a/src/apis.js b/src/apis.js index 306d0ce8..2d0c571e 100644 --- a/src/apis.js +++ b/src/apis.js @@ -12,7 +12,8 @@ var angularGlobal = { }; var angularCollection = { - 'size': size + 'size': size, + 'equals': equals }; var angularObject = { 'extend': extend |
