diff options
| author | Matias Niemelä | 2013-04-02 19:41:16 -0400 | 
|---|---|---|
| committer | Igor Minar | 2013-04-03 17:40:15 -0700 | 
| commit | 19f1801379104bc1f74fbb9d288f71034ba829c9 (patch) | |
| tree | eaf2d28c5056b80669b33478c808df88431d6a4e /src/ng/directive/ngRepeat.js | |
| parent | 303df9dafee4314e5cfbc805f3321f4f4297a41a (diff) | |
| download | angular.js-19f1801379104bc1f74fbb9d288f71034ba829c9.tar.bz2 | |
docs: add animations into docs and directive examples
Diffstat (limited to 'src/ng/directive/ngRepeat.js')
| -rw-r--r-- | src/ng/directive/ngRepeat.js | 102 | 
1 files changed, 81 insertions, 21 deletions
diff --git a/src/ng/directive/ngRepeat.js b/src/ng/directive/ngRepeat.js index fada0696..060f3392 100644 --- a/src/ng/directive/ngRepeat.js +++ b/src/ng/directive/ngRepeat.js @@ -61,26 +61,86 @@   * @example   * This example initializes the scope to a list of names and   * then uses `ngRepeat` to display every person: -    <doc:example> -      <doc:source> -        <div ng-init="friends = [{name:'John', age:25}, {name:'Mary', age:28}]"> -          I have {{friends.length}} friends. They are: -          <ul> -            <li ng-repeat="friend in friends"> -              [{{$index + 1}}] {{friend.name}} who is {{friend.age}} years old. -            </li> -          </ul> -        </div> -      </doc:source> -      <doc:scenario> -         it('should check ng-repeat', function() { -           var r = using('.doc-example-live').repeater('ul li'); -           expect(r.count()).toBe(2); -           expect(r.row(0)).toEqual(["1","John","25"]); -           expect(r.row(1)).toEqual(["2","Mary","28"]); -         }); -      </doc:scenario> -    </doc:example> +  <example animations="true"> +    <file name="index.html"> +      <div ng-init="friends = [ +        {name:'John', age:25, gender:'boy'}, +        {name:'Jessie', age:30, gender:'girl'}, +        {name:'Johanna', age:28, gender:'girl'}, +        {name:'Joy', age:15, gender:'girl'}, +        {name:'Mary', age:28, gender:'girl'}, +        {name:'Peter', age:95, gender:'boy'}, +        {name:'Sebastian', age:50, gender:'boy'}, +        {name:'Erika', age:27, gender:'girl'}, +        {name:'Patrick', age:40, gender:'boy'}, +        {name:'Samantha', age:60, gender:'girl'} +      ]"> +        I have {{friends.length}} friends. They are: +        <input type="search" ng-model="q" placeholder="filter friends..." /> +        <ul> +          <li ng-repeat="friend in friends | filter:q" +              ng-animate="{enter: 'example-repeat-enter', +                          leave: 'example-repeat-leave', +                          move: 'example-repeat-move'}"> +            [{{$index + 1}}] {{friend.name}} who is {{friend.age}} years old. +          </li> +        </ul> +      </div> +    </file> +    <file name="animations.css"> +      .example-repeat-enter-setup, +      .example-repeat-leave-setup, +      .example-repeat-move-setup { +        -webkit-transition:all linear 0.5s; +        -moz-transition:all linear 0.5s; +        -ms-transition:all linear 0.5s; +        -o-transition:all linear 0.5s; +        transition:all linear 0.5s; +      } + +      .example-repeat-enter-setup { +        line-height:0; +        opacity:0; +      } +      .example-repeat-enter-setup.example-repeat-enter-start { +        line-height:20px; +        opacity:1; +      } + +      .example-repeat-leave-setup { +        opacity:1; +        line-height:20px; +      } +      .example-repeat-leave-setup.example-repeat-leave-start { +        opacity:0; +        line-height:0; +      } + +      .example-repeat-move-setup { } +      .example-repeat-move-setup.example-repeat-move-start { } +    </file> +    <file name="scenario.js"> +       it('should render initial data set', function() { +         var r = using('.doc-example-live').repeater('ul li'); +         expect(r.count()).toBe(10); +         expect(r.row(0)).toEqual(["1","John","25"]); +         expect(r.row(1)).toEqual(["2","Jessie","30"]); +         expect(r.row(9)).toEqual(["10","Samantha","60"]); +         expect(binding('friends.length')).toBe("10"); +       }); + +       it('should update repeater when filter predicate changes', function() { +         var r = using('.doc-example-live').repeater('ul li'); +         expect(r.count()).toBe(10); + +         input('q').enter('ma'); + +         expect(r.count()).toBe(2); +         expect(r.row(0)).toEqual(["1","Mary","28"]); +         expect(r.row(1)).toEqual(["2","Samantha","60"]); +       }); +      </file> +    </example>   */  var ngRepeatDirective = ['$parse', '$animator', function($parse, $animator) {    var NG_REMOVED = '$$NG_REMOVED'; @@ -119,7 +179,7 @@ var ngRepeatDirective = ['$parse', '$animator', function($parse, $animator) {              return hashKey(value);            }          } -         +          match = lhs.match(/^(?:([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\))$/);          if (!match) {            throw Error("'item' in 'item in collection' should be identifier or (key, value) but got '" +  | 
