diff options
| author | Igor Minar | 2010-11-23 11:05:28 -0800 |
|---|---|---|
| committer | Igor Minar | 2010-11-23 11:05:28 -0800 |
| commit | b94600d71e90a9f93e507b2cac0ffc2c55e7857a (patch) | |
| tree | d058a23533d2545dde23f635e45097828a001e2e /src/apis.js | |
| parent | 3e5a4ef86c1f1221053eacb1a3a2eeb3da7d018d (diff) | |
| download | angular.js-b94600d71e90a9f93e507b2cac0ffc2c55e7857a.tar.bz2 | |
adding docs for angular.Array.add
Diffstat (limited to 'src/apis.js')
| -rw-r--r-- | src/apis.js | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/apis.js b/src/apis.js index f687a471..6dd41fc4 100644 --- a/src/apis.js +++ b/src/apis.js @@ -167,6 +167,66 @@ var angularArray = { * @ngdoc function * @name angular.Array.add * @function + * + * @description + * `add` is a function similar to JavaScript's `Array#push` method, in that it appends a new + * element to an array, but it differs in that the value being added is optional and defaults to + * an emty object. + * + * Note: this function is used to augment the Array type in angular expressions. See + * {@link angular.Array} for more info. + * + * @param {Array} array The array expand. + * @param {*=} [value={}] The value to be added. + * @returns {Array} The expanded array. + * + * @exampleDescription + * This example shows how an initially empty array can be filled with objects created from user + * input via the `$add` method. + * + * @example + [<a href="" ng:click="people.$add()">add empty</a>] + [<a href="" ng:click="people.$add({name:'John', sex:'male'})">add 'John'</a>] + [<a href="" ng:click="people.$add({name:'Mary', sex:'female'})">add 'Mary'</a>] + + <ul ng:init="people=[]"> + <li ng:repeat="person in people"> + <input name="person.name"> + <select name="person.sex"> + <option value="">--chose one--</option> + <option>male</option> + <option>female</option> + </select> + [<a href="" ng:click="people.$remove(person)">X</a>] + </li> + </ul> + <pre>people = {{people}}</pre> + + @scenario + beforeEach(function() { + expect(binding('people')).toBe('people = []'); + }); + + it('should create an empty record when "add empty" is clicked', function() { + element('.doc-example a:contains("add empty")').click(); + expect(binding('people')).toBe('people = [{\n "name":"",\n "sex":null}]'); + }); + + it('should create a "John" record when "add \'John\'" is clicked', function() { + element('.doc-example a:contains("add \'John\'")').click(); + expect(binding('people')).toBe('people = [{\n "name":"John",\n "sex":"male"}]'); + }); + + it('should create a "Mary" record when "add \'Mary\'" is clicked', function() { + element('.doc-example a:contains("add \'Mary\'")').click(); + expect(binding('people')).toBe('people = [{\n "name":"Mary",\n "sex":"female"}]'); + }); + + it('should delete a record when "X" is clicked', function() { + element('.doc-example a:contains("add empty")').click(); + element('.doc-example li a:contains("X"):first').click(); + expect(binding('people')).toBe('people = []'); + }); */ 'add':function(array, value) { array.push(isUndefined(value)? {} : value); |
