diff options
| author | Igor Minar | 2011-01-18 13:50:52 -0800 |
|---|---|---|
| committer | Igor Minar | 2011-01-18 14:42:18 -0800 |
| commit | ad3b811b8beb51193a28fc1f34ea711df347cb9f (patch) | |
| tree | e106cf8d2811d1f7281629139248a65ad2acff82 /src | |
| parent | d3f7bd699e2e0edf93887ddf5302b27254a1ec81 (diff) | |
| download | angular.js-ad3b811b8beb51193a28fc1f34ea711df347cb9f.tar.bz2 | |
fixes, examples and tests for angular.Object.* docs
Diffstat (limited to 'src')
| -rw-r--r-- | src/Angular.js | 63 | ||||
| -rw-r--r-- | src/apis.js | 5 |
2 files changed, 46 insertions, 22 deletions
diff --git a/src/Angular.js b/src/Angular.js index 762291ef..722dc409 100644 --- a/src/Angular.js +++ b/src/Angular.js @@ -469,7 +469,6 @@ function map(obj, iterator, context) { /** - * @workInProgress * @ngdoc function * @name angular.Object.size * @function @@ -481,14 +480,20 @@ function map(obj, iterator, context) { * {@link angular.Object} for more info. * * @param {Object|Array} obj Object or array to inspect. - * @returns {number} The size of `obj` or `0` if `obj` is not an object or array. + * @returns {number} The size of `obj` or `0` if `obj` is neither an object or an array. * * @example * Number of items in array: {{ [1,2].$size() }}<br/> * Number of items in object: {{ {a:1, b:2, c:3}.$size() }}<br/> + * + * @scenario + it('should print correct sizes for an array and an object', function() { + expect(binding('[1,2].$size()')).toBe('2'); + expect(binding('{a:1, b:2, c:3}.$size()')).toBe('3'); + }); */ function size(obj) { - var size = 0; + var size = 0, key; if (obj) { if (isNumber(obj.length)) { return obj.length; @@ -526,7 +531,6 @@ function isLeafNode (node) { } /** - * @workInProgress * @ngdoc function * @name angular.Object.copy * @function @@ -534,14 +538,14 @@ function isLeafNode (node) { * @description * Creates a deep copy of `source`. * + * If `source` is an object or an array, all of its members will be copied into the `destination` + * object. + * * If `destination` is not provided and `source` is an object or an array, a copy is created & * returned, otherwise the `source` is returned. * * If `destination` is provided, all of its properties will be deleted. * - * If `source` is an object or an array, all of its members will be copied into the `destination` - * object. - * * Note: this function is used to augment the Object type in angular expressions. See * {@link angular.Object} for more info. * @@ -556,10 +560,22 @@ function isLeafNode (node) { <button ng:click="form = master.$copy()">copy</button> <hr/> - Master is <span ng:hide="master.$equals(form)">NOT</span> same as form. + The master object is <span ng:hide="master.$equals(form)">NOT</span> equal to the form object. <pre>master={{master}}</pre> <pre>form={{form}}</pre> + + * @scenario + it('should print that initialy the form object is NOT equal to master', function() { + expect(element('.doc-example input[name=master.salutation]').val()).toBe('Hello'); + expect(element('.doc-example input[name=master.name]').val()).toBe('world'); + expect(element('.doc-example span').css('display')).toBe('inline'); + }); + + it('should make form and master equal when the copy button is clicked', function() { + element('.doc-example button').click(); + expect(element('.doc-example span').css('display')).toBe('none'); + }); */ function copy(source, destination){ if (!destination) { @@ -595,7 +611,6 @@ function copy(source, destination){ /** - * @workInProgress * @ngdoc function * @name angular.Object.equals * @function @@ -604,13 +619,11 @@ function copy(source, destination){ * Determines if two objects or value are equivalent. * * To be equivalent, they must pass `==` comparison or be of the same type and have all their - * properties pass `==` comparison. + * properties pass `==` comparison. During property comparision properties of `function` type and + * properties with name starting with `$` are ignored. * * Supports values types, arrays and objects. * - * For objects `function` properties and properties that start with `$` are not considered during - * comparisons. - * * Note: this function is used to augment the Object type in angular expressions. See * {@link angular.Object} for more info. * @@ -619,15 +632,27 @@ function copy(source, destination){ * @returns {boolean} True if arguments are equal. * * @example - Salutation: <input type="text" name="master.salutation" value="Hello" /><br/> - Name: <input type="text" name="master.name" value="world"/><br/> - <button ng:click="form = master.$copy()">copy</button> + Salutation: <input type="text" name="greeting.salutation" value="Hello" /><br/> + Name: <input type="text" name="greeting.name" value="world"/><br/> <hr/> - Master is <span ng:hide="master.$equals(form)">NOT</span> same as form. + The <code>greeting</code> object is + <span ng:hide="greeting.$equals({salutation:'Hello', name:'world'})">NOT</span> equal to + <code>{salutation:'Hello', name:'world'}</code>. - <pre>master={{master}}</pre> - <pre>form={{form}}</pre> + <pre>greeting={{greeting}}</pre> + + @scenario + it('should print that initialy greeting is equal to the hardcoded value object', function() { + expect(element('.doc-example input[name=greeting.salutation]').val()).toBe('Hello'); + expect(element('.doc-example input[name=greeting.name]').val()).toBe('world'); + expect(element('.doc-example span').css('display')).toBe('none'); + }); + + it('should say that the objects are not equal when the form is modified', function() { + input('greeting.name').enter('kitty'); + expect(element('.doc-example span').css('display')).toBe('inline'); + }); */ function equals(o1, o2) { if (o1 == o2) return true; diff --git a/src/apis.js b/src/apis.js index 2d54d4eb..35e3a92f 100644 --- a/src/apis.js +++ b/src/apis.js @@ -13,13 +13,12 @@ var angularGlobal = { /** - * @workInProgress * @ngdoc overview * @name angular.Object * @function * * @description - * angular.Object is a namespace for utility functions for manipulation with JavaScript objects. + * `angular.Object` is a namespace for utility functions for manipulation with JavaScript objects. * * These functions are exposed in two ways: * @@ -45,7 +44,7 @@ var angularObject = { * @name angular.Array * * @description - * angular.Array is a namespace for utility functions for manipulation of JavaScript `Array` + * `angular.Array` is a namespace for utility functions for manipulation of JavaScript `Array` * objects. * * These functions are exposed in two ways: |
