Permalink
Comparing changes
Open a pull request
- 17 commits
- 145 files changed
- 0 commit comments
- 10 contributors
Commits on May 24, 2016
This is a major re-structuring of the tutorial app's codebase, aiming at applying established best practices (in terms of file naming/layout and code organization) and utilizing several new features and enhancements (most notably components) introduced in recent versions of Angular (especially v1.5). Apart from the overall changes, two new chapters were introduced: one on components and one on code organization. -- In the process, several other things were (incidentally) taken care of, including: * Dependencies were upgraded to latest versions. * Animations were polished. * Outdated links were updated. * The app's base URL was changed to `/` (instead of `/app/`). BTW, this has been tested with the following versions of Node (on Windows 10) and everything worked fine: * 0.11.16 * 4.2.6 * 4.4.2 * 5.10.0 * 6.2.0 -- This was inspired by (and loosely based on) #13834. Again, mad props to @teropa for leading the way :) -- **Note:** The old version of the tutorial, that is compatible with Angular version 1.4 or older, has been saved on the `pre-v1.5.0-snapshot` branch of [angular-phonecat](https://github.com/angular/angular-phonecat). The `v1.4.x` version of the tutorial should be pointed to that branch instead of `master`. -- Related to angular/angular-phonecat#326. Related to angular/angular-seed#341. Closes #14416
…andler
Thanks to @spamdaemon for the original PR to make this improvement. In naive tests on Chrome I got the following results: ``` Matches Misses indexOf 33ms 1494ms lastIndexOf 11ms 11ms ``` Closes #3711
Commits on May 25, 2016
We can remove the vendor-prefixing from our docs, since all major browsers support these properties, without prefixes. Closes #14586
Closes #14562
By using a pointer to the current start of the queue and only clearing up the queue storage later, we save lots of time that was spent manipulating arrays with `slice` Closes #14545
Corrected formatting errors on lines 258, 695, 696, 1096, 1219, 1451, and 1536 by adding periods at the end of single line comments that were missing them in order to be consistent with the formatting found in the file. Capitalized the first letter in the first word of the comments on lines 695, 696, 1096, to be consistent with the formatting of the rest of the file. Added a space after the // in the comment on line 1536 to be consistent with the formatting of the file.
Closes #6763
Unified
Split
Showing
with
117,038 additions
and 5,994 deletions.
- +5 −0 docs/app/assets/css/docs.css
- +4 −3 docs/app/src/tutorials.js
- +4 −4 docs/config/templates/indexPage.template.html
- +20 −41 docs/content/guide/animations.ngdoc
- +141 −96 docs/content/tutorial/index.ngdoc
- +89 −74 docs/content/tutorial/step_00.ngdoc
- +9 −5 docs/content/tutorial/step_01.ngdoc
- +171 −114 docs/content/tutorial/step_02.ngdoc
- +212 −153 docs/content/tutorial/step_03.ngdoc
- +241 −125 docs/content/tutorial/step_04.ngdoc
- +103 −212 docs/content/tutorial/step_05.ngdoc
- +196 −63 docs/content/tutorial/step_06.ngdoc
- +214 −282 docs/content/tutorial/step_07.ngdoc
- +63 −143 docs/content/tutorial/step_08.ngdoc
- +366 −81 docs/content/tutorial/step_09.ngdoc
- +145 −111 docs/content/tutorial/step_10.ngdoc
- +106 −223 docs/content/tutorial/step_11.ngdoc
- +112 −465 docs/content/tutorial/step_12.ngdoc
- +321 −0 docs/content/tutorial/step_13.ngdoc
- +564 −0 docs/content/tutorial/step_14.ngdoc
- +13 −6 docs/content/tutorial/the_end.ngdoc
- BIN docs/img/tutorial/tutorial_00_final.png
- BIN docs/img/tutorial/tutorial_02.png
- BIN docs/img/tutorial/tutorial_03.png
- BIN docs/img/tutorial/tutorial_04.png
- BIN docs/img/tutorial/tutorial_05.png
- BIN docs/img/tutorial/tutorial_05.pptx
- BIN docs/img/tutorial/tutorial_06.png
- BIN docs/img/tutorial/tutorial_07_final.png
- BIN docs/img/tutorial/tutorial_08-09_final.png
- BIN docs/img/tutorial/tutorial_09.png
- BIN docs/img/tutorial/tutorial_10-11_final.png
- BIN docs/img/tutorial/tutorial_10.png
- BIN docs/img/tutorial/tutorial_12.png
- BIN docs/img/tutorial/xhr_service_final.png
- BIN images/docs/Diagrams.graffle/QuickLook/Preview.pdf
- BIN images/docs/Diagrams.graffle/QuickLook/Thumbnail.tiff
- +1,076 −1,465 images/docs/Diagrams.graffle/data.plist
- +3 −0 images/docs/Diagrams.svg/Canvas_8.svg
- +3 −0 images/docs/Diagrams.svg/Canvas_angular___parts.svg
- +3 −0 images/docs/Diagrams.svg/Canvas_angular___usage.svg
- +3 −0 images/docs/Diagrams.svg/Notes.svg
- +3 −0 images/docs/Diagrams.svg/One_Way_Data_Binding.svg
- +3 −0 images/docs/Diagrams.svg/RESTful_URL.svg
- +3 −0 images/docs/Diagrams.svg/RESTy.svg
- +3 −0 images/docs/Diagrams.svg/Two_Way_Data_Binding.svg
- BIN images/docs/Diagrams.svg/image1.png
- BIN images/docs/Diagrams.svg/image2.png
- BIN images/docs/Diagrams.svg/image4.png
- BIN images/docs/Diagrams.svg/image8.png
- BIN images/docs/Diagrams.svg/image9.png
- +14,452 −0 images/docs/Diagrams.vdx
- +3 −0 images/docs/guide/about_controller.svg
- +3,385 −0 images/docs/guide/about_controller.vdx
- +3 −0 images/docs/guide/about_model.svg
- +2,141 −0 images/docs/guide/about_model.vdx
- +879 −961 images/docs/guide/concepts.graffle/data.plist
- +3 −0 images/docs/guide/concepts.svg/Canvas_11.svg
- +3 −0 images/docs/guide/concepts.svg/controller.svg
- +3 −0 images/docs/guide/concepts.svg/databinding1.svg
- +3 −0 images/docs/guide/concepts.svg/databinding2.svg
- +3 −0 images/docs/guide/concepts.svg/directive.svg
- +3 −0 images/docs/guide/concepts.svg/filter.svg
- BIN images/docs/guide/concepts.svg/image4.png
- BIN images/docs/guide/concepts.svg/image5.png
- +3 −0 images/docs/guide/concepts.svg/injector-module.svg
- +3 −0 images/docs/guide/concepts.svg/runtime.svg
- +3 −0 images/docs/guide/concepts.svg/scope.svg
- +3 −0 images/docs/guide/concepts.svg/startup.svg
- +3 −0 images/docs/guide/concepts.svg/view.svg
- +13,153 −0 images/docs/guide/concepts.vdx
- +3 −0 images/docs/guide/di_sequence.svg
- +4,288 −0 images/docs/guide/di_sequence.vdx
- +3 −0 images/docs/guide/dom_scope.svg
- +4,587 −0 images/docs/guide/dom_scope.vdx
- +160 −1,257 images/docs/guide/form_data_flow.graffle
- +3 −0 images/docs/guide/form_data_flow.svg
- +2,075 −0 images/docs/guide/form_data_flow.vdx
- +3 −0 images/docs/guide/hashbang_vs_regular_url.svg
- +1,660 −0 images/docs/guide/hashbang_vs_regular_url.vdx
- BIN images/docs/guide/simple_scope.svg/image7.png
- +3 −0 images/docs/guide/simple_scope.svg/simple_scope.svg
- +3,839 −0 images/docs/guide/simple_scope.vdx
- +3 −0 images/docs/tutorial/di_sequence.svg
- +5,295 −0 images/docs/tutorial/di_sequence.vdx
- BIN images/docs/tutorial/simple_scope.svg/image7.png
- +3 −0 images/docs/tutorial/simple_scope.svg/simple_scope.svg
- +3,634 −0 images/docs/tutorial/simple_scope.vdx
- +3 −0 images/docs/tutorial/tutorial_00.svg
- +1,496 −0 images/docs/tutorial/tutorial_00.vdx
- BIN images/docs/tutorial/tutorial_02.svg/image11.png
- +1,352 −0 images/docs/tutorial/tutorial_02.svg/tutorial_02.svg
- +4,613 −0 images/docs/tutorial/tutorial_02.vdx
- BIN images/docs/tutorial/tutorial_03.svg/image11.png
- +1,377 −0 images/docs/tutorial/tutorial_03.svg/tutorial_03.svg
- +5,108 −0 images/docs/tutorial/tutorial_03.vdx
- +5,356 −0 images/docs/tutorial/tutorial_04.vdx
- BIN images/docs/tutorial/{tutorial_03.graffle → tutorial_05.graffle}/QuickLook/Preview.pdf
- BIN images/docs/tutorial/{tutorial_03.graffle → tutorial_05.graffle}/QuickLook/Thumbnail.tiff
- 0 images/docs/tutorial/{tutorial_03.graffle → tutorial_05.graffle}/data.plist
- BIN images/docs/tutorial/{tutorial_03.graffle → tutorial_05.graffle}/image13.png
- BIN images/docs/tutorial/tutorial_05.svg/image13.png
- +1,569 −0 images/docs/tutorial/tutorial_05.svg/tutorial_05.svg
- BIN images/docs/tutorial/{tutorial_04.graffle → tutorial_06.graffle}/QuickLook/Preview.pdf
- BIN images/docs/tutorial/{tutorial_04.graffle → tutorial_06.graffle}/QuickLook/Thumbnail.tiff
- 0 images/docs/tutorial/{tutorial_04.graffle → tutorial_06.graffle}/data.plist
- BIN images/docs/tutorial/{tutorial_04.graffle → tutorial_06.graffle}/image15.png
- BIN images/docs/tutorial/tutorial_06.svg/image15.png
- +1,625 −0 images/docs/tutorial/tutorial_06.svg/tutorial_06.svg
- +5,758 −0 images/docs/tutorial/tutorial_07.vdx
- +6,220 −0 images/docs/tutorial/tutorial_08-09.vdx
- BIN images/docs/tutorial/{tutorial_07.graffle → tutorial_09.graffle}/QuickLook/Preview.pdf
- BIN images/docs/tutorial/{tutorial_07.graffle → tutorial_09.graffle}/QuickLook/Thumbnail.tiff
- 0 images/docs/tutorial/{tutorial_07.graffle → tutorial_09.graffle}/data.plist
- BIN images/docs/tutorial/{tutorial_07.graffle → tutorial_09.graffle}/image9.png
- BIN images/docs/tutorial/tutorial_09.svg/image9.png
- +1,727 −0 images/docs/tutorial/tutorial_09.svg/tutorial_09.svg
- +6,183 −0 images/docs/tutorial/tutorial_10-11.vdx
- BIN images/docs/tutorial/{tutorial_08-09.graffle → tutorial_10.graffle}/QuickLook/Preview.pdf
- BIN images/docs/tutorial/{tutorial_08-09.graffle → tutorial_10.graffle}/QuickLook/Thumbnail.tiff
- 0 images/docs/tutorial/{tutorial_08-09.graffle → tutorial_10.graffle}/data.plist
- BIN images/docs/tutorial/{tutorial_08-09.graffle → tutorial_10.graffle}/image10.png
- BIN images/docs/tutorial/tutorial_10.svg/image10.png
- +1,706 −0 images/docs/tutorial/tutorial_10.svg/tutorial_10.svg
- BIN images/docs/tutorial/{tutorial_10-11.graffle → tutorial_12.graffle}/QuickLook/Preview.pdf
- BIN images/docs/tutorial/{tutorial_10-11.graffle → tutorial_12.graffle}/QuickLook/Thumbnail.tiff
- 0 images/docs/tutorial/{tutorial_10-11.graffle → tutorial_12.graffle}/data.plist
- BIN images/docs/tutorial/{tutorial_10-11.graffle → tutorial_12.graffle}/image10.png
- BIN images/docs/tutorial/tutorial_12.svg/image10.png
- +1,844 −0 images/docs/tutorial/tutorial_12.svg/tutorial_12.svg
- BIN images/docs/tutorial/tutorial_proto.svg/image7.png
- +3 −0 images/docs/tutorial/tutorial_proto.svg/tutorial_proto.svg
- +3,727 −0 images/docs/tutorial/tutorial_proto.vdx
- +3 −0 images/docs/tutorial/xhr_service.svg
- +3,381 −0 images/docs/tutorial/xhr_service.vdx
- +6 −6 src/Angular.js
- +14 −10 src/auto/injector.js
- +2 −2 src/jqLite.js
- +20 −17 src/ng/location.js
- +12 −4 src/ng/rootScope.js
- +2 −0 src/ngMock/angular-mocks.js
- +36 −29 src/ngRoute/route.js
- +1 −1 src/ngSanitize/sanitize.js
- +1 −1 src/ngScenario/browserTrigger.js
- +86 −40 test/ng/rootScopeSpec.js
| @@ -647,6 +647,11 @@ ul.events > li { | ||
| padding-top: 50px; | ||
| } | ||
|
|
||
| .diagram { | ||
| margin-bottom: 10px; | ||
| margin-top: 30px; | ||
| } | ||
|
|
||
| @media only screen and (min-width: 769px) and (max-width: 991px) { | ||
| .main-body-grid { | ||
| margin-top: 160px; | ||
| @@ -5,7 +5,8 @@ angular.module('tutorials', []) | ||
| '', | ||
| 'step_00', 'step_01', 'step_02', 'step_03', 'step_04', | ||
| 'step_05', 'step_06', 'step_07', 'step_08', 'step_09', | ||
| 'step_10', 'step_11', 'step_12', 'the_end' | ||
| 'step_10', 'step_11', 'step_12', 'step_13', 'step_14', | ||
| 'the_end' | ||
| ]; | ||
| return { | ||
| scope: {}, | ||
| @@ -43,7 +44,7 @@ angular.module('tutorials', []) | ||
| '<a href="http://angular.github.io/angular-phonecat/step-{{step}}/app">Step {{step}} Live Demo</a>.</p>\n' + | ||
| '</div>\n' + | ||
| '<p>The most important changes are listed below. You can see the full diff on ' + | ||
| '<a ng-href="https://github.com/angular/angular-phonecat/compare/step-{{step ? (step - 1): \'0~1\'}}...step-{{step}}" title="See diff on Github">GitHub</a>\n' + | ||
| '<a ng-href="https://github.com/angular/angular-phonecat/compare/step-{{step ? (step - 1): \'0~1\'}}...step-{{step}}" title="See diff on Github">GitHub</a>.\n' + | ||
| '</p>' | ||
| }; | ||
| }); | ||
| }); | ||
| @@ -228,10 +228,10 @@ <h4 class="search-results-group-heading">{{ key }}</h4> | ||
| ) | ||
| </p> | ||
| <p> | ||
| Code licensed under the | ||
| <a href="https://github.com/angular/angular.js/blob/master/LICENSE" target="_blank">The | ||
| MIT License</a>. Documentation licensed under <a | ||
| href="http://creativecommons.org/licenses/by/3.0/">CC BY 3.0</a>. | ||
| Code licensed under | ||
| <a href="https://github.com/angular/angular.js/blob/master/LICENSE" target="_blank">The MIT License</a>. | ||
| Documentation licensed under | ||
| <a href="http://creativecommons.org/licenses/by/3.0/" target="_blank">CC BY 3.0</a>. | ||
| </p> | ||
| </div> | ||
| </footer> | ||
| @@ -12,6 +12,13 @@ triggered, will attempt to perform a CSS Transition, CSS Keyframe Animation or a | ||
| placed on the given directive). Animations can be placed using vanilla CSS by following the naming conventions set in place by AngularJS | ||
| or with JavaScript code when it's defined as a factory. | ||
|
|
||
| <div class="alert alert-info"> | ||
| Note that we have used non-prefixed CSS transition properties in our examples as the major browsers now support non-prefixed | ||
| properties. If you intend to support older browsers or certain mobile browsers then you will need to include prefixed | ||
| versions of the transition properties. Take a look at http://caniuse.com/#feat=css-transitions for what browsers require prefixes, | ||
| and https://github.com/postcss/autoprefixer for a tool that can automatically generate the prefixes for you. | ||
| </div> | ||
|
|
||
| Animations are not available unless you include the {@link ngAnimate `ngAnimate` module} as a dependency within your application. | ||
|
|
||
| Below is a quick example of animations being enabled for `ngShow` and `ngHide`: | ||
| @@ -29,18 +36,17 @@ Below is a quick example of animations being enabled for `ngShow` and `ngHide`: | ||
| </file> | ||
| <file name="animations.css"> | ||
| .sample-show-hide { | ||
| padding:10px; | ||
| border:1px solid black; | ||
| background:white; | ||
| padding: 10px; | ||
| border: 1px solid black; | ||
| background: white; | ||
| } | ||
|
|
||
| .sample-show-hide { | ||
| -webkit-transition:all linear 0.5s; | ||
| transition:all linear 0.5s; | ||
| transition: all linear 0.5s; | ||
| } | ||
|
|
||
| .sample-show-hide.ng-hide { | ||
| opacity:0; | ||
| opacity: 0; | ||
| } | ||
| </file> | ||
| </example> | ||
| @@ -80,11 +86,8 @@ occur when ngRepeat triggers them: | ||
| class | ||
| */ | ||
| .repeated-item.ng-enter, .repeated-item.ng-move { | ||
| -webkit-transition:0.5s linear all; | ||
| -moz-transition:0.5s linear all; | ||
| -o-transition:0.5s linear all; | ||
| transition:0.5s linear all; | ||
| opacity:0; | ||
| transition: all 0.5s linear; | ||
| opacity: 0; | ||
| } | ||
|
|
||
| /* | ||
| @@ -95,7 +98,7 @@ occur when ngRepeat triggers them: | ||
| */ | ||
| .repeated-item.ng-enter.ng-enter-active, | ||
| .repeated-item.ng-move.ng-move-active { | ||
| opacity:1; | ||
| opacity: 1; | ||
| } | ||
|
|
||
| /* | ||
| @@ -104,35 +107,14 @@ occur when ngRepeat triggers them: | ||
| that has the .repeated-item class | ||
| */ | ||
| .repeated-item.ng-leave { | ||
| -webkit-animation:0.5s my_animation; | ||
| -moz-animation:0.5s my_animation; | ||
| -o-animation:0.5s my_animation; | ||
| animation:0.5s my_animation; | ||
| animation: 0.5s my_animation; | ||
| } | ||
|
|
||
| @keyframes my_animation { | ||
| from { opacity:1; } | ||
| to { opacity:0; } | ||
| } | ||
|
|
||
| /* | ||
| Unfortunately each browser vendor requires | ||
| its own definition of keyframe animation code... | ||
| */ | ||
| @-webkit-keyframes my_animation { | ||
| from { opacity:1; } | ||
| to { opacity:0; } | ||
| } | ||
|
|
||
| @-moz-keyframes my_animation { | ||
| from { opacity:1; } | ||
| to { opacity:0; } | ||
| } | ||
|
|
||
| @-o-keyframes my_animation { | ||
| from { opacity:1; } | ||
| to { opacity:0; } | ||
| } | ||
| ``` | ||
|
|
||
| The same approach to animation can be used using JavaScript code (**jQuery is used within to perform animations**): | ||
| @@ -217,10 +199,7 @@ The example below shows how to perform animations during class changes: | ||
| </file> | ||
| <file name="style.css"> | ||
| .css-class-add, .css-class-remove { | ||
| -webkit-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s; | ||
| -moz-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s; | ||
| -o-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s; | ||
| transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s; | ||
| transition: all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s; | ||
| } | ||
|
|
||
| .css-class, | ||
| @@ -231,7 +210,7 @@ The example below shows how to perform animations during class changes: | ||
|
|
||
| .css-class-remove.css-class-remove-active { | ||
| font-size:1.0em; | ||
| color:black; | ||
| color: black; | ||
| } | ||
| </file> | ||
| </example> | ||
| @@ -317,8 +296,8 @@ app.config(function($animateProvider) { | ||
| ```css | ||
| /* prefixed with animate- */ | ||
| .animate-fade-add.animate-fade-add-active { | ||
| transition:1s linear all; | ||
| opacity:0; | ||
| transition: all 1s linear; | ||
| opacity: 0; | ||
| } | ||
| ``` | ||
|
|
||
Oops, something went wrong.