PageSourceSearch

https://docs.angularjs.org/guide

html angularjs.org collected 2026-09-24 07:31:04 UTC 11,890 bytes, 233 lines download raw bytes

1<!doctype html>
2<html lang="en" ng-app="docsApp" ng-strict-di ng-controller="DocsController">
3<head>
4  <meta name="viewport" content="width=device-width, initial-scale=1.0">
5  <meta charset="utf-8">
6  <meta http-equiv="X-UA-Compatible" content="IE=edge">
7  <meta name="Description"
8        content="AngularJS is what HTML would have been, had it been designed for building web-apps.
9                 Declarative templates with data-binding, MVC, dependency injection and great
10                 testability story all implemented with pure client-side JavaScript!">
11  <meta name="fragment" content="!">
12  <title ng-bind-template="AngularJS: {{ currentArea.name }}: {{ currentPage.name || 'Error: Page not found'}}">AngularJS</title>
13
14  
14<script type="text/javascript">
15    (function() {
16      // Dynamically, pre-emptively, add `noindex`, which will be removed when the doc is ready and valid
17      ['googlebot', 'robots'].forEach(function(bot) {
18        var tag = document.createElement('meta');
19        tag.name = bot;
20        tag.content = 'noindex';
21        tag.setAttribute('ng-if', 'hasError()');
22        document.head.appendChild(tag);
23      });
24    })();
25  </script>
25
26  
26<script type="text/javascript">
27    // Dynamically add `<base>` tag.
28    (function() {
29      var indexFile = (location.pathname.match(/\/(index[^.]*\.html)/) || ['', ''])[1],
30          rUrl = /(#!\/|api|guide|misc|tutorial|error|index[^.]*\.html).*$/,
31          baseUrl = location.href.replace(rUrl, indexFile),
32          headEl = document.getElementsByTagName('head')[0],
33          baseEl = document.createElement('base');
34
35      baseEl.setAttribute('href', baseUrl);
36      headEl.appendChild(baseEl);
37    })();
38  </script>
38
39
40  
41  <link rel="stylesheet" href="components/bootstrap-3.1.1/css/bootstrap.min.css" type="text/css"></link>
42  <link rel="stylesheet" href="css/prettify-theme.css" type="text/css"></link>
43  <link rel="stylesheet" href="css/angular-topnav.css" type="text/css"></link>
44  <link rel="stylesheet" href="css/docs.css" type="text/css"></link>
45  <link rel="stylesheet" href="css/animations.css" type="text/css"></link>
46  
47  
47<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.8.3/angular.min.js"></script>
47
48  
48<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.8.3/angular-resource.min.js"></script>
48
49  
49<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.8.3/angular-route.min.js"></script>
49
50  
50<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.8.3/angular-cookies.min.js"></script>
50
51  
51<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.8.3/angular-sanitize.min.js"></script>
51
52  
52<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.8.3/angular-touch.min.js"></script>
52
53  
53<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.8.3/angular-animate.min.js"></script>
53
54  
54<script src="components/marked-0.3.6/marked.min.js"></script>
54
55  
55<script src="js/angular-bootstrap/dropdown-toggle.min.js"></script>
55
56  
56<script src="components/lunr-0.7.2/lunr.min.js"></script>
56
57  
57<script src="components/google-code-prettify-1.0.1/src/prettify.js"></script>
57
58  
58<script src="components/google-code-prettify-1.0.1/src/lang-css.js"></script>
58
59  
59<script src="js/current-version-data.js"></script>
59
60  
60<script src="https://code.angularjs.org/snapshot/docs/js/all-versions-data.js"></script>
60
61  
61<script src="js/pages-data.js"></script>
61
62  
62<script src="js/nav-data.js"></script>
62
63  
63<script src="js/docs.min.js"></script>
63
64
65  
65<script type="text/javascript">
66    // GA asynchronous tracker
67    var _gaq = _gaq || [];
68    _gaq.push(['_setAccount', 'UA-8594346-3']);
69    _gaq.push(['_setDomainName', '.angularjs.org']);
70
71    (function() {
72      var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
73      ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
74      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
75    })();
76  </script>
76
77</head>
78<body class="homepage">
79  <div id="wrapper">
80    <header class="header">
81      <nav id="navbar-main" class="navbar navbar-fixed-top">
82        <div class="navbar-inner" ng-controller="DocsSearchCtrl">
83          <div class="container">
84            <h1 class="brand"><a href="http://angularjs.org"><img width="117" height="30" src="img/angularjs-for-header-only.svg" alt="AngularJS"></a></h1>
85
86            <form class="navbar-search" ng-submit="submit()">
87              <i class="glyphicon glyphicon-search search-icon"></i>
88              <input type="text" name="as_q" class="search-query" placeholder="SEARCH"
89                 ng-focus="focus=true"
90                 ng-blur="focus=false"
91                 ng-change="search(q)"
92                 ng-model="q"
93                 ng-model-options="{debounce: 150}"
94                 docs-search-input
95                 autocomplete="off">
96            </form>
97
98            <ul class="nav navbar-nav">
99              <li class="dropdown" uib-dropdown>
100                <a href="#" class="dropdown-toggle" uib-dropdown-toggle>Learn</a>
101                <ul class="dropdown-menu" uib-dropdown-menu>
102                  <li><a href="tutorial">Tutorial</a></li>
103                  <li><a href="misc/faq">FAQ</a></li>
104                  <li><a href="https://www.youtube.com/user/angularjs">Videos</a></li>
105                  <li><a href="http://angular.codeschool.com/">Free Course</a></li>
106                  <li><a href="https://www.madewithangular.com/">Case Studies</a></li>
107                </ul>
108              </li>
109              <li class="dropdown" uib-dropdown>
110                <a href="#" class="dropdown-toggle" uib-dropdown-toggle>Develop</a>
111                <ul class="dropdown-menu" uib-dropdown-menu>
112                  <li><a href="guide">Developer Guide</a></li>
113                  <li><a href="api">API Reference</a></li>
114                  <li><a href="error">Error Reference</a></li>
115                  <li><a href="misc/contribute">Contribute</a></li>
116                  <li><a href="https://github.com/angular/angular-seed">Seed App project template</a></li>
117                  <li><a href="https://github.com/angular/angular.js">GitHub</a></li>
118                  <li><a href="https://github.com/angular/angular.js/blob/master/CHANGELOG.md">Changelog</a></li>
119                  <li><a href="http://code.angularjs.org/">Download</a></li>
120                </ul>
121              </li>
122              <li class="dropdown" uib-dropdown>
123                <a href="#" class="dropdown-toggle" uib-dropdown-toggle>Discuss</a>
124                <ul class="dropdown-menu" uib-dropdown-menu>
125                  <li><a href="http://blog.angularjs.org">Blog</a></li>
126                  <li><a href="https://twitter.com/angular">Twitter</a></li>
127                  <li><a href="https://plus.google.com/110323587230527980117">Google+</a></li>
128                  <li><a href="https://github.com/angular/angular.js/issues">Feature &amp; Bug Tracker</a></li>
129                  <li><a href="http://groups.google.com/group/angular">Mailing List</a></li>
130                  <li><a href="http://webchat.freenode.net/?channels=angularjs&uio=d4">IRC</a></li>
131                  <li><a href="https://gitter.im/angular/angular.js">Gitter</a></li>
132                </ul>
133              </li>
134            </ul>
135
136          </div>
137          <div class="search-results-container" ng-show="hasResults" ng-cloak>
138            <div class="container">
139              <div class="search-results-frame">
140                <div ng-repeat="(key, value) in results track by key" class="search-results-group" ng-class="colClassName + ' col-group-' + key" ng-show="value.length > 0">
141                  <h4 class="search-results-group-heading">{{ key }}</h4>
142                  <ul class="search-results">
143                    <li ng-repeat="item in value" class="search-result"><a ng-click="handleResultClicked($event)" ng-href="{{ item.path }}">{{ item.name }}</a></li>
144                  </ul>
145                </div>
146              </div>
147              <a href="" ng-click="hideResults()" class="search-close">
148                <span class="glyphicon glyphicon-remove search-close-icon"></span> Close
149              </a>
150            </div>
151          </div>
152        </div>
153      </nav>
154      <nav id="navbar-sub" class="sup-header navbar navbar-fixed-top" scroll-y-offset-element ng-cloak>
155        <div class="container main-grid main-header-grid">
156        <p class="site-notice">
157              AngularJS support has officially ended as of January 2022.
158              <a href="https://docs.angularjs.org/misc/version-support-status">
159                See what ending support means
160              </a> and
161              <a href="https://goo.gle/angularjs-end-of-life">
162                read the end of life announcement</a>.<br>
163              Visit <a href="https://angular.io">angular.io</a> for the actively supported
164              Angular.
165            </p>
166          <div class="grid-left">
167            <version-picker></version-picker>
168          </div>
169          <div class="grid-right">
170            <ul class="nav-breadcrumb">
171              <li ng-repeat="crumb in breadcrumb" class="nav-breadcrumb-entry naked-list">
172                <span class="divider"> /</span>
173                <a ng-href="{{crumb.url}}">{{crumb.name}}</a>
174              </li>
175            </ul>
176          </div>
177        </div>
178      </nav>
179    </header>
180
181    <section role="main" class="container main-body" ng-cloak>
182      <div class="main-grid main-body-grid">
183        <div class="grid-left">
184          <a class="btn toc-toggle visible-xs" ng-click="toc=!toc">Show / Hide Table of Contents</a>
185          <div class="side-navigation" ng-show="toc==true">
186            <ul class="nav-list naked-list">
187              <li ng-repeat="navGroup in currentArea.navGroups track by navGroup.name" class="nav-index-group">
188                <a href="{{ navGroup.href }}" ng-class="navClass(navGroup)" class="nav-index-group-heading">{{ navGroup.name }}</a>
189                <ul class="aside-nav">
190                  <li ng-repeat="navItem in navGroup.navItems" ng-class="navClass(navItem)" class="nav-index-listing">
191                    <a ng-if="navItem.extra.href" ng-class="navClass(navItem.extra)" href="{{navItem.extra.href}}">
192                      {{navItem.extra.text}}<i ng-if="navItem.extra.icon" class="icon-{{navItem.extra.icon}}"></i>
193                    </a>
194                    <a tabindex="2" ng-class="linkClass(navItem)" href="{{navItem.href}}">{{navItem.name}}</a>
195                  </li>
196                </ul>
197              </li>
198            </ul>
199            <a href="" ng-click="toc=false" class="toc-close visible-xs">
200              <span class="glyphicon glyphicon-remove toc-close-icon"></span> Close
201            </a>
202          </div>
203        </div>
204        <div class="grid-right">
205          <div ng-show="loading">Loading &hellip;</div>
206          <div ng-show="loadingError">There was an error loading this resource. Please try again later.</div>
207          <div ng-hide="loading" ng-include="partialPath" toc-collector autoscroll></div>
208        </div>
209      </div>
210    </section>
211
212    <footer class="footer">
213      <div class="container">
214        <p class="pull-right"><a back-to-top>Back to top</a></p>
215
216        <p>
217          Super-powered by Google ©2010-2020
218          (<a id="version"
219               ng-href="https://github.com/angular/angular.js/blob/master/CHANGELOG.md#{{versionNumber}}"
220               ng-bind-template="v{{version}}" title="Changelog of this version of AngularJS">
221           </a>)
222        </p>
223        <p>
224          Code licensed under
225          <a href="https://github.com/angular/angular.js/blob/master/LICENSE" target="_blank">The MIT License</a>.
226          Documentation licensed under
227          <a href="http://creativecommons.org/licenses/by/3.0/" target="_blank">CC BY 3.0</a>.
228        </p>
229      </div>
230    </footer>
231  </div>
232</body>
233</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.