aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMisko Hevery2010-07-19 12:29:24 -0700
committerMisko Hevery2010-07-19 12:29:24 -0700
commit7e96af0fdd9af8c479992363f68578305df0337e (patch)
treefccb29641d030f390db1250a98be5412af993e94 /src
parentcc097867f49673005d47a7f8f0cbe25f7d5c2163 (diff)
downloadangular.js-7e96af0fdd9af8c479992363f68578305df0337e.tar.bz2
added equals method to angular.equals and $equals
Diffstat (limited to 'src')
-rw-r--r--src/Angular.js28
-rw-r--r--src/AngularPublic.js1
-rw-r--r--src/apis.js3
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