01_built-in_instructions.html 46 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985
  1. <!DOCTYPE HTML>
  2. <html lang="" >
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  6. <title>内置指令 · 代码收集</title>
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  8. <meta name="description" content="">
  9. <meta name="generator" content="GitBook 3.1.1">
  10. <link rel="stylesheet" href="../../gitbook/style.css">
  11. <link rel="stylesheet" href="../../gitbook/gitbook-plugin-search-pro/search.css">
  12. <link rel="stylesheet" href="../../gitbook/gitbook-plugin-highlight/website.css">
  13. <meta name="HandheldFriendly" content="true"/>
  14. <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
  15. <meta name="apple-mobile-web-app-capable" content="yes">
  16. <meta name="apple-mobile-web-app-status-bar-style" content="black">
  17. <link rel="apple-touch-icon-precomposed" sizes="152x152" href="../../gitbook/images/apple-touch-icon-precomposed-152.png">
  18. <link rel="shortcut icon" href="../../gitbook/images/favicon.ico" type="image/x-icon">
  19. <link rel="next" href="from/" />
  20. <link rel="prev" href="0_depend.html" />
  21. </head>
  22. <body>
  23. <div class="gb-page-wrapper">
  24. <header class="gb-page-header">
  25. <div class="container">
  26. <div id="book-search-input" role="search">
  27. <input type="text" placeholder="Type to search" />
  28. </div>
  29. <a href="../.." class="logo">
  30. <img src="../../gitbook/images/logo/128.png">
  31. <h1>代码收集</h1>
  32. </a>
  33. <a href="https://github.com/seamong/myBlogs/blob/doc/angular/study_notes/01_built-in_instructions.md" target="_blank" class="btn btn-link pull-right hidden-xs">
  34. <i class="octicon octicon-mark-github"></i> 在GitHub编辑本页
  35. </a>
  36. <a href="../../faq.md" class="btn btn-link pull-right hidden-xs">
  37. F.A.Q
  38. </a>
  39. <a href="https://github.com/seamong/myBlogs/README.md" target="_blank" class="btn btn-link pull-right hidden-xs">
  40. 当前版本0.0.1
  41. </a>
  42. </div>
  43. </header>
  44. <div class="gb-page-body">
  45. <div class="gb-page-inner">
  46. <div class="container">
  47. <div class="row">
  48. <div class="col-md-3">
  49. <div class="panel panel-default">
  50. <div class="panel-heading">
  51. <h3 class="panel-title">介绍</h3>
  52. </div>
  53. <div class="list-group">
  54. <a href="../../" class="list-group-item ">
  55. 关于本文档
  56. </a>
  57. </div>
  58. </div>
  59. <div class="panel panel-default">
  60. <div class="panel-heading">
  61. <h3 class="panel-title">JavaScript</h3>
  62. </div>
  63. <div class="list-group">
  64. <a href="../../JavaScript/principle/" class="list-group-item ">
  65. <i class="octicon octicon-chevron-right"></i>
  66. 原理解析
  67. </a>
  68. <a href="../../JavaScript/cases/" class="list-group-item ">
  69. <i class="octicon octicon-chevron-right"></i>
  70. 案例解析
  71. </a>
  72. </div>
  73. </div>
  74. <div class="panel panel-default">
  75. <div class="panel-heading">
  76. <h3 class="panel-title">angular</h3>
  77. </div>
  78. <div class="list-group">
  79. <a href="./" class="list-group-item ">
  80. <i class="octicon octicon-chevron-down"></i>
  81. Study notes
  82. </a>
  83. <a href="0_depend.html" class="list-group-item ">
  84. <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
  85. 项目依赖
  86. </a>
  87. <a href="01_built-in_instructions.html" class="list-group-item active">
  88. <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
  89. 内置指令
  90. </a>
  91. <a href="from/" class="list-group-item ">
  92. <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
  93. <i class="octicon octicon-chevron-right"></i>
  94. 表单
  95. </a>
  96. <a href="../ng.html" class="list-group-item ">
  97. ng
  98. </a>
  99. </div>
  100. </div>
  101. <div class="panel panel-default">
  102. <div class="panel-heading">
  103. <h3 class="panel-title">css</h3>
  104. </div>
  105. <div class="list-group">
  106. <a href="../../css/principle/" class="list-group-item ">
  107. 原理解析
  108. </a>
  109. <a href="../../css/cases/" class="list-group-item ">
  110. <i class="octicon octicon-chevron-right"></i>
  111. 案例收集
  112. </a>
  113. </div>
  114. </div>
  115. <div class="panel panel-default">
  116. <div class="panel-heading">
  117. <h3 class="panel-title">vue</h3>
  118. </div>
  119. <div class="list-group">
  120. <a href="../../vue/components/" class="list-group-item ">
  121. <i class="octicon octicon-chevron-right"></i>
  122. components
  123. </a>
  124. <a href="../../vue/router/" class="list-group-item ">
  125. <i class="octicon octicon-chevron-right"></i>
  126. router
  127. </a>
  128. <a href="../../vue/vuex/" class="list-group-item ">
  129. VUE
  130. </a>
  131. </div>
  132. </div>
  133. <div class="panel panel-default">
  134. <div class="panel-heading">
  135. <h3 class="panel-title">ubuntu</h3>
  136. </div>
  137. <div class="list-group">
  138. <a href="../../ubuntu/serves/" class="list-group-item ">
  139. <i class="octicon octicon-chevron-right"></i>
  140. 服务器生存指南
  141. </a>
  142. <a href="../../ubuntu/instruction.html" class="list-group-item ">
  143. 常用指令
  144. </a>
  145. </div>
  146. </div>
  147. <div class="panel panel-default">
  148. <div class="panel-heading">
  149. <h3 class="panel-title">GIT</h3>
  150. </div>
  151. <div class="list-group">
  152. <a href="../../git/git.html" class="list-group-item ">
  153. git 命令
  154. </a>
  155. </div>
  156. </div>
  157. <div class="panel panel-default">
  158. <div class="list-group">
  159. <a href="../../other/faq.html" class="list-group-item ">
  160. FAQ
  161. </a>
  162. <a href="../../other/examples.html" class="list-group-item ">
  163. Examples
  164. </a>
  165. </div>
  166. </div>
  167. </div>
  168. <div class="col-md-9">
  169. <div id="book-search-results">
  170. <div class="search-noresults">
  171. <div class="gb-markdown book-page-inner">
  172. <h3 id="ngif">ngIf</h3>
  173. <blockquote>
  174. <p><strong> &#x5982;&#x679C;&#x4F60;&#x5E0C;&#x671B;&#x6839;&#x636E;&#x4E00;&#x4E2A;&#x6761;&#x4EF6;&#x6765;&#x51B3;&#x5B9A;&#x663E;&#x793A;&#x6216;&#x9690;&#x85CF;&#x4E00;&#x4E2A;&#x5143;&#x7D20;,&#x53EF;&#x4EE5;&#x4F7F;&#x7528; ngIf &#x6307;&#x4EE4;&#x3002;&#x8FD9;&#x4E2A;&#x6761;&#x4EF6;&#x662F;&#x7531;&#x4F60;&#x4F20;&#x7ED9;&#x6307;&#x4EE4;&#x7684;&#x8868;&#x8FBE;&#x5F0F;&#x7684;&#x7ED3;&#x679C;&#x51B3;&#x5B9A;&#x7684;&#x3002;<br>
  175. </strong> &#x5982;&#x679C;&#x8868;&#x8FBE;&#x5F0F;&#x7684;&#x7ED3;&#x679C;&#x8FD4;&#x56DE;&#x7684;&#x662F;&#x4E00;&#x4E2A;&#x5047;&#x503C;,&#x90A3;&#x4E48;&#x5143;&#x7D20;&#x4F1A;&#x4ECE;DOM&#x4E0A;&#x88AB;&#x79FB;&#x9664;&#x3002;</p>
  176. </blockquote>
  177. <pre><code class="lang-html"># &#x4F8B;&#x5B50;&#xFF1A;
  178. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> *<span class="hljs-attr">ngIf</span> = &quot;<span class="hljs-attr">false</span>&quot; &gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  179. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> *<span class="hljs-attr">ngIf</span> = &quot;<span class="hljs-attr">a</span> &gt;</span> b&quot; &gt;<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  180. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> *<span class="hljs-attr">ngIf</span> = &quot;<span class="hljs-attr">str</span> =<span class="hljs-string">=</span> &apos;<span class="hljs-attr">yes</span>&apos;&quot; &gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  181. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> *<span class="hljs-attr">ngIf</span> = &quot;<span class="hljs-attr">myFunc</span>()&quot; &gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  182. </code></pre>
  183. <h3 id="ngswitch">ngSwitch</h3>
  184. <blockquote>
  185. <p>** &#x5B9E;&#x9645;&#x4F5C;&#x7528;&#x540C;&#x7B49;&#x4E8E; switch&#x8BED;&#x53E5;</p>
  186. </blockquote>
  187. <pre><code class="lang-html"># &#x901A;&#x8FC7;2&#x7EC4;&#x5B9E;&#x4F8B;&#x8FDB;&#x884C;&#x6BD4;&#x8F83;
  188. ## ngIf
  189. &#x6839;&#x636E;&#x540C;&#x503C;&#x4E0D;&#x540C;&#x6761;&#x4EF6;&#x6E32;&#x67D3;&#x4E0D;&#x540C;&#x5143;&#x7D20;
  190. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;container&quot;</span>&gt;</span>
  191. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">&quot;myVar == &apos;A&apos;&quot;</span>&gt;</span>Var is A<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  192. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">&quot;myVar == &apos;B&apos;&quot;</span>&gt;</span>Var is B<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  193. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">&quot;myVar != &apos;A&apos; &amp;&amp; myVar != &apos;B&apos;&quot;</span>&gt;</span>Var is something else<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  194. <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  195. &#x589E;&#x52A0;&#x6761;&#x4EF6;&#x4E0E;&#x503C;
  196. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;container&quot;</span>&gt;</span>
  197. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">&quot;myVar == &apos;A&apos;&quot;</span>&gt;</span>Var is A<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  198. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">&quot;myVar == &apos;B&apos;&quot;</span>&gt;</span>Var is B<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  199. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">&quot;myVar == &apos;C&apos;&quot;</span>&gt;</span>Var is C<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  200. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">&quot;myVar != &apos;A&apos; &amp;&amp; myVar != &apos;B&apos; &amp;&amp; myVar != &apos;C&apos;&quot;</span>&gt;</span>Var is something else<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  201. <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  202. ### ngSwitch
  203. &#x6539;&#x53D8;&#x4E0A;&#x8FF0;&#x60C5;&#x51B5;&#xFF0C;&#x5B98;&#x65B9;&#x52A0;&#x5165; ngSwitch
  204. &#x4F7F;&#x7528; ngSwitchCase &#x6307;&#x4EE4;&#x63CF;&#x8FF0;&#x5DF2;&#x77E5;&#x7ED3;&#x679C;
  205. &#x4F7F;&#x7528; ngSwitchDefault &#x6307;&#x4EE4;&#x5904;&#x7406;&#x6240;&#x6709;&#x5176;&#x4ED6;&#x672A;&#x77E5;&#x60C5;&#x51B5;
  206. &#x91CD;&#x5199;&#x5B9E;&#x4F8B;
  207. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;container&quot;</span> [<span class="hljs-attr">ngSwitch</span>]=<span class="hljs-string">&quot;myVar&quot;</span>&gt;</span>
  208. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> *<span class="hljs-attr">ngSwitchCase</span>=<span class="hljs-string">&quot;&apos;A&apos;&quot;</span>&gt;</span>Var is A<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  209. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> *<span class="hljs-attr">ngSwitchCase</span>=<span class="hljs-string">&quot;&apos;B&apos;&quot;</span>&gt;</span>Var is B<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  210. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> *<span class="hljs-attr">ngSwitchDefault</span>&gt;</span>Var is something else<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  211. <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  212. &#x6DFB;&#x52A0;&#x6761;&#x4EF6;&#xFF1A; ngSwitchDefault &#x5143;&#x7D20;&#x662F;&#x53EF;&#x9009;&#x7684;&#x3002;&#x5982;&#x679C;&#x6211;&#x4EEC;&#x4E0D;&#x7528;&#x5B83;,&#x90A3;&#x4E48;&#x5F53; myVar &#x6CA1;&#x6709;&#x5339;&#x914D;&#x5230;&#x4EFB;&#x4F55;&#x671F;&#x671B;&#x7684;&#x503C;
  213. &#x65F6;&#x5C31;&#x4E0D;&#x4F1A;&#x6E32;&#x67D3;&#x4EFB;&#x4F55;&#x4E1C;&#x897F;&#x3002;
  214. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;container&quot;</span> [<span class="hljs-attr">ngSwitch</span>]=<span class="hljs-string">&quot;myVar&quot;</span>&gt;</span>
  215. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> *<span class="hljs-attr">ngSwitchCase</span>=<span class="hljs-string">&quot;&apos;A&apos;&quot;</span>&gt;</span>Var is A<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  216. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> *<span class="hljs-attr">ngSwitchCase</span>=<span class="hljs-string">&quot;&apos;B&apos;&quot;</span>&gt;</span>Var is B<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  217. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> *<span class="hljs-attr">ngSwitchCase</span>=<span class="hljs-string">&quot;&apos;C&apos;&quot;</span>&gt;</span>Var is C<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  218. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> *<span class="hljs-attr">ngSwitchDefault</span>&gt;</span>Var is something else<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  219. <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  220. &#x4E3A;&#x4E0D;&#x540C;&#x7684;&#x5143;&#x7D20;&#x58F0;&#x660E;&#x540C;&#x6837;&#x7684; *ngSwitchCase &#x503C;
  221. &#x5728;&#x4E0B;&#x9762;&#x7684;&#x4F8B;&#x5B50;&#x4E2D;,&#x5F53; choice &#x7684;&#x503C;&#x662F; 2 &#x7684;&#x65F6;&#x5019;,&#x7B2C;2&#x4E2A;&#x548C;&#x7B2C;5&#x4E2A; li &#x90FD;&#x4F1A;&#x88AB;&#x6E32;&#x67D3;&#x3002;
  222. <span class="hljs-tag">&lt;<span class="hljs-name">h4</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;ui horizontal divider header&quot;</span>&gt;</span>
  223. Current choice is {{ choice }}
  224. <span class="hljs-tag">&lt;/<span class="hljs-name">h4</span>&gt;</span>
  225. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;ui raised segment&quot;</span>&gt;</span>
  226. <span class="hljs-tag">&lt;<span class="hljs-name">ul</span> [<span class="hljs-attr">ngSwitch</span>]=<span class="hljs-string">&quot;choice&quot;</span>&gt;</span>
  227. <span class="hljs-tag">&lt;<span class="hljs-name">li</span> *<span class="hljs-attr">ngSwitchCase</span>=<span class="hljs-string">&quot;1&quot;</span>&gt;</span>First choice<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
  228. <span class="hljs-tag">&lt;<span class="hljs-name">li</span> *<span class="hljs-attr">ngSwitchCase</span>=<span class="hljs-string">&quot;2&quot;</span>&gt;</span>Second choice<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
  229. <span class="hljs-tag">&lt;<span class="hljs-name">li</span> *<span class="hljs-attr">ngSwitchCase</span>=<span class="hljs-string">&quot;3&quot;</span>&gt;</span>Third choice<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
  230. <span class="hljs-tag">&lt;<span class="hljs-name">li</span> *<span class="hljs-attr">ngSwitchCase</span>=<span class="hljs-string">&quot;4&quot;</span>&gt;</span>Fourth choice<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
  231. <span class="hljs-tag">&lt;<span class="hljs-name">li</span> *<span class="hljs-attr">ngSwitchCase</span>=<span class="hljs-string">&quot;2&quot;</span>&gt;</span>Second choice, again<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
  232. <span class="hljs-tag">&lt;<span class="hljs-name">li</span> *<span class="hljs-attr">ngSwitchDefault</span>&gt;</span>Default choice<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
  233. <span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
  234. <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  235. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">style</span>=<span class="hljs-string">&quot;margin-top: 20px;&quot;</span>&gt;</span>
  236. <span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;ui primary button&quot;</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">&quot;nextChoice()&quot;</span>&gt;</span>
  237. Next choice
  238. <span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
  239. <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  240. </code></pre>
  241. <h3 id="ngstyle">ngStyle</h3>
  242. <blockquote>
  243. <p>&#x7B2C;&#x4E00;&#x79CD;&#x7528;&#x6CD5;&#xFF1A;&#x4F7F;&#x7528; ngStyle &#x6307;&#x4EE4;,&#x53EF;&#x4EE5;&#x901A;&#x8FC7;Angular&#x8868;&#x8FBE;&#x5F0F;&#x7ED9;&#x7279;&#x5B9A;&#x7684;DOM&#x5143;&#x7D20;&#x8BBE;&#x5B9A;CSS&#x5C5E;&#x6027;&#x3002;
  244. &#x8BE5;&#x6307;&#x4EE4;&#x6700;&#x7B80;&#x5355;&#x7684;&#x7528;&#x6CD5;&#x5C31;&#x662F; [style.<cssproperty>]=&quot;value&quot; &#x7684;&#x5F62;&#x5F0F;,</cssproperty></p>
  245. </blockquote>
  246. <pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">div</span> [<span class="hljs-attr">style.background-color</span>]=<span class="hljs-string">&quot;&apos;yellow&apos;&quot;</span>&gt;</span>
  247. Uses fixed yellow background
  248. <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  249. </code></pre>
  250. <blockquote>
  251. <p>&#x7B2C;&#x4E8C;&#x79CD;&#x7528;&#x6CD5;&#xFF1A;&#x8BBE;&#x7F6E;&#x56FA;&#x5B9A;&#x503C;&#x7684;&#x65B9;&#x5F0F;&#x5C31;&#x662F;&#x4F7F;&#x7528; ngStyle &#x5C5E;&#x6027;,&#x4F7F;&#x7528;&#x952E;&#x503C;&#x5BF9;&#x6765;&#x8BBE;&#x7F6E;&#x6BCF;&#x4E2A;&#x5C5E;&#x6027;</p>
  252. </blockquote>
  253. <pre><code class="lang-html"><span class="hljs-comment">&lt;!--&#x8FDE;&#x5B57;&#x7B26;&#x662F;&#x4E0D;&#x5141;&#x8BB8;&#x51FA;&#x73B0;&#x5728;&#x5BF9;&#x8C61;&#x7684;&#x952E;&#x503C;&#x5BF9;&#x4E2D;&#x7684;&#xFF0C;&#x9700;&#x8981;&#x4F7F;&#x7528;&#x5F15;&#x53F7;--&gt;</span>
  254. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> [<span class="hljs-attr">ngStyle</span>]=<span class="hljs-string">&quot;{color: &apos;white&apos;, &apos;background-color&apos;: &apos;blue&apos;}&quot;</span>&gt;</span>
  255. Uses fixed white text on blue background
  256. <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  257. </code></pre>
  258. <blockquote>
  259. <p>&#x7B2C;&#x4E09;&#x79CD;&#x7528;&#x6CD5;&#xFF1A;&#x8FD9;&#x4E2A;&#x624D;&#x662F;ngStyle&#x7684;&#x51FA;&#x5F69;&#x7684;&#x5730;&#x65B9;</p>
  260. </blockquote>
  261. <pre><code class="lang-html"><span class="hljs-comment">&lt;!--&#x5728;component&#x4E2D;&#x58F0;&#x660E;&#x53D8;&#x91CF;&#xFF0C;&#x5B9A;&#x4E49;apply&#x51FD;&#x6570;&#xFF0C;&#x5C06;&#x8F93;&#x5165;&#x6846;&#x4E2D;&#x5BF9;&#x5E94;&#x7684;&#x503C;&#xFF0C;&#x901A;&#x8FC7;ngStyle&#x7ED1;&#x5B9A;&#x5230;&#x989C;&#x8272;&#x4E0E;&#x5B57;&#x4F53;&#x5927;&#x5C0F;&#x7684;&#x5C5E;&#x6027;&#x4E0A;&#x53BB;--&gt;</span>
  262. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;ui input&quot;</span>&gt;</span>
  263. <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">&quot;text&quot;</span> <span class="hljs-attr">name</span>=<span class="hljs-string">&quot;color&quot;</span> <span class="hljs-attr">value</span>=<span class="hljs-string">&quot;{{color}}&quot;</span> #<span class="hljs-attr">colorinput</span>&gt;</span>
  264. <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  265. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;ui input&quot;</span>&gt;</span>
  266. <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">&quot;text&quot;</span> <span class="hljs-attr">name</span>=<span class="hljs-string">&quot;fontSize&quot;</span> <span class="hljs-attr">value</span>=<span class="hljs-string">&quot;{{fontSize}}&quot;</span> #<span class="hljs-attr">fontinput</span>&gt;</span>
  267. <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  268. <span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;ui primary button&quot;</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">&quot;apply(colorinput.value, fontinput.value)&quot;</span>&gt;</span>
  269. Apply setting
  270. <span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
  271. <span class="hljs-comment">&lt;!--&#x6570;&#x636E;&#x7ED1;&#x5B9A;&#x7684;2&#x79CD;&#x65B9;&#x5F0F;--&gt;</span>
  272. <span class="hljs-tag">&lt;<span class="hljs-name">span</span> [<span class="hljs-attr">ngStyle</span>]=<span class="hljs-string">&quot;{color: color,&apos;font-size&apos;: fontSize + &apos;em&apos;}&quot;</span>&gt;</span>
  273. {{ color }} text
  274. <span class="hljs-tag">&lt;/<span class="hljs-name">span</span>&gt;</span>
  275. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> [<span class="hljs-attr">style.background-color</span>]=<span class="hljs-string">&quot;color&quot;</span>
  276. [<span class="hljs-attr">style.font-size.em</span>]=<span class="hljs-string">&quot;fontSize&quot;</span>
  277. <span class="hljs-attr">style</span>=<span class="hljs-string">&quot;color: white;&quot;</span>&gt;</span>
  278. {{ color }} background
  279. <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  280. </code></pre>
  281. <pre><code class="lang-typescript"><span class="hljs-comment">// &#x5B9A;&#x4E49;&#x6570;&#x636E;&#x7C7B;&#x578B;&#xFF0C;&#x5B9A;&#x4E49;&#x89E6;&#x53D1;&#x4E8B;&#x4EF6;</span>
  282. <span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> InventoryAppComponent <span class="hljs-keyword">implements</span> OnInit {
  283. color:<span class="hljs-built_in">string</span>;
  284. fontSize:<span class="hljs-built_in">number</span>;
  285. apply(color: <span class="hljs-built_in">string</span>, fontSize: <span class="hljs-built_in">number</span>) {
  286. <span class="hljs-keyword">this</span>.color = color;
  287. <span class="hljs-keyword">this</span>.fontSize = fontSize;
  288. }
  289. <span class="hljs-keyword">constructor</span>() {
  290. }
  291. ngOnInit() {
  292. }
  293. }
  294. </code></pre>
  295. <h3 id="ngclass">ngClass</h3>
  296. <blockquote>
  297. <p>ngClass &#x6307;&#x4EE4;&#x5728;HTML&#x6A21;&#x677F;&#x4E2D;&#x7528; ngClass &#x5C5E;&#x6027;&#x6765;&#x8868;&#x793A;,&#x8BA9;&#x4F60;&#x80FD;&#x52A8;&#x6001;&#x8BBE;&#x7F6E;&#x548C;&#x6539;&#x53D8;&#x4E00;&#x4E2A;&#x7ED9;&#x5B9A;DOM&#x5143;&#x7D20;&#x7684;CSS&#x7C7B;&#x3002;
  298. &#x4EE5;&#x4E0B;&#x662F;&#x6700;&#x7B80;&#x5355;&#x7684;&#x7528;&#x6CD5;&#x3002;</p>
  299. </blockquote>
  300. <pre><code class="lang-scss"><span class="hljs-selector-class">.bordered</span> {
  301. <span class="hljs-attribute">border</span>: <span class="hljs-number">1px</span> dashed black;
  302. <span class="hljs-attribute">background-color</span>: <span class="hljs-number">#eee</span>;
  303. }
  304. </code></pre>
  305. <pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">div</span> [<span class="hljs-attr">ngClass</span>]=<span class="hljs-string">&quot;{bordered: false}&quot;</span>&gt;</span>This is never bordered<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  306. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> [<span class="hljs-attr">ngClass</span>]=<span class="hljs-string">&quot;{bordered: true}&quot;</span>&gt;</span>This is always bordered<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  307. </code></pre>
  308. <blockquote>
  309. <p>&#x52A8;&#x6001;&#x6DFB;&#x52A0;class</p>
  310. </blockquote>
  311. <pre><code class="lang-html"><span class="hljs-comment">&lt;!-- *&apos;`&apos;&#x7B26;&#x53F7;&#x662F;&#x4E3A;&#x4E86;&#x907F;&#x514D;gitbook&#x6E32;&#x67D3;&#x9875;&#x9762;&#x51FA;&#x73B0;&#x6545;&#x969C;* --&gt;</span>
  312. <span class="hljs-comment">&lt;!-- &#x901A;&#x8FC7;ngClass&#x7ED1;&#x5B9A;&#x6570;&#x636E;&#x5230;&#x5404;&#x5143;&#x7D20;&#x7684;class&#x4E0A; --&gt;</span>
  313. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> [<span class="hljs-attr">ngClass</span>]=<span class="hljs-string">&quot;classesObj&quot;</span>&gt;</span>
  314. Using object var. Border `{{ classesObj.bordered ? &quot;ON&quot; : &quot;OFF&quot; }}`
  315. <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  316. <span class="hljs-tag">&lt;<span class="hljs-name">hr</span>&gt;</span>
  317. <span class="hljs-comment">&lt;!-- &#x6839;&#x636E;&#x6761;&#x4EF6;&#x7ED1;&#x5B9A;&#x6570;&#x636E; --&gt;</span>
  318. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> [<span class="hljs-attr">ngClass</span>]=<span class="hljs-string">&quot;{bordered: isBordered}&quot;</span>&gt;</span>
  319. Using object literal. Border `{{ isBordered ? &quot;ON&quot; : &quot;OFF&quot; }}`
  320. <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  321. <span class="hljs-tag">&lt;<span class="hljs-name">hr</span>&gt;</span>
  322. <span class="hljs-comment">&lt;!-- &#x5B9A;&#x4E49;&#x6570;&#x7EC4;&#x7ED1;&#x5B9A;class --&gt;</span>
  323. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;base&quot;</span> [<span class="hljs-attr">ngClass</span>]=<span class="hljs-string">&quot;[&apos;blue&apos;, &apos;round&apos;]&quot;</span>&gt;</span>
  324. This will always have a blue background and
  325. round corners
  326. <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  327. <span class="hljs-comment">&lt;!-- &#x52A8;&#x6001;&#x5B9A;&#x4E49;&#x6570;&#x7EC4;&#x7ED1;&#x5B9A;&#x7C7B; --&gt;</span>
  328. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;base&quot;</span> [<span class="hljs-attr">ngClass</span>]=<span class="hljs-string">&quot;classList&quot;</span>&gt;</span>
  329. <span class="hljs-comment">&lt;!-- &#x5224;&#x65AD;&#x7C7B;&#x662F;&#x5426;&#x5B58;&#x5728; --&gt;</span>
  330. This is { { classList.indexOf(&apos;blue&apos;) &gt; -1 ? &quot;&quot; : &quot;NOT&quot;}} blue
  331. and { { classList.indexOf(&apos;round&apos;) &gt; 1 ? &quot;&quot; :&quot;NOT&quot; }} round
  332. <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  333. </code></pre>
  334. <pre><code class="lang-typescript"><span class="hljs-comment">// &#x5B9A;&#x4E49;&#x6570;&#x636E;&#xFF0C;&#x5E76;&#x8D4B;&#x503C;</span>
  335. <span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> InventoryAppComponent <span class="hljs-keyword">implements</span> OnInit {
  336. isBordered: <span class="hljs-built_in">boolean</span>;
  337. classesObj: <span class="hljs-built_in">Object</span>;
  338. classList: <span class="hljs-built_in">string</span>[];
  339. <span class="hljs-keyword">constructor</span>() {
  340. <span class="hljs-keyword">this</span>.isBordered = <span class="hljs-literal">true</span>;
  341. <span class="hljs-keyword">this</span>.classesObj = {
  342. bordered : <span class="hljs-string">&quot;bordered&quot;</span>
  343. };
  344. <span class="hljs-keyword">this</span>.classList = [<span class="hljs-string">&apos;blue&apos;</span>, <span class="hljs-string">&apos;round&apos;</span>];
  345. <span class="hljs-built_in">console</span>.log(<span class="hljs-keyword">this</span>)
  346. }
  347. ngOnInit() {
  348. }
  349. }
  350. </code></pre>
  351. <h3 id="ngfor">ngFor</h3>
  352. <blockquote>
  353. <p>&#x8FD9;&#x4E2A;&#x6307;&#x4EE4;&#x7684;&#x4EFB;&#x52A1;&#x662F;&#x91CD;&#x590D;&#x4E00;&#x4E2A;&#x7ED9;&#x5B9A;&#x7684;DOM&#x5143;&#x7D20; (&#x6216;&#x4E00;&#x7EC4;DOM&#x5143;&#x7D20;),&#x6BCF;&#x6B21;&#x91CD;&#x590D;&#x90FD;&#x4F1A;&#x4ECE;&#x6570;&#x7EC4;&#x4E2D;&#x53D6;
  354. &#x4E00;&#x4E2A;&#x4E0D;&#x540C;&#x7684;&#x503C;&#x3002;<br>
  355. &#x5B83;&#x7684;&#x8BED;&#x6CD5;&#x662F; *ngFor=&quot;let item of items&quot; &#x3002;</p>
  356. </blockquote>
  357. <p><code>&#x7B80;&#x5316;&#x7248;</code></p>
  358. <pre><code class="lang-typescript">cities: <span class="hljs-built_in">string</span>[];
  359. <span class="hljs-keyword">constructor</span>() {
  360. <span class="hljs-keyword">this</span>.cities = [<span class="hljs-string">&apos;Miami&apos;</span>, <span class="hljs-string">&apos;Sao Paulo&apos;</span>, <span class="hljs-string">&apos;New York&apos;</span>];
  361. }
  362. </code></pre>
  363. <pre><code class="lang-HTML"><span class="hljs-tag">&lt;<span class="hljs-name">h4</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;ui horizontal divider header&quot;</span>&gt;</span>
  364. Simple list of strings
  365. <span class="hljs-tag">&lt;/<span class="hljs-name">h4</span>&gt;</span>
  366. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;ui list&quot;</span> *<span class="hljs-attr">ngFor</span>=<span class="hljs-string">&quot;let c of cities&quot;</span>&gt;</span>
  367. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;item&quot;</span>&gt;</span>{{ c }}<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  368. <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  369. <span class="hljs-comment">&lt;!-- &#x8F93;&#x51FA; --&gt;</span>
  370. Miami
  371. Sao Paulo
  372. New York
  373. </code></pre>
  374. <p><code>&#x8FDB;&#x9636;&#x7248;</code></p>
  375. <pre><code class="lang-typescript">people: <span class="hljs-built_in">Object</span>[];
  376. <span class="hljs-keyword">constructor</span>() {
  377. <span class="hljs-keyword">this</span>.people = [
  378. { name: <span class="hljs-string">&apos;Anderson&apos;</span>, age: <span class="hljs-number">35</span>, city: <span class="hljs-string">&apos;Sao Paulo&apos;</span> },
  379. { name: <span class="hljs-string">&apos;John&apos;</span>, age: <span class="hljs-number">12</span>, city: <span class="hljs-string">&apos;Miami&apos;</span> },
  380. { name: <span class="hljs-string">&apos;Peter&apos;</span>, age: <span class="hljs-number">22</span>, city: <span class="hljs-string">&apos;New York&apos;</span> }
  381. ];
  382. }
  383. </code></pre>
  384. <pre><code class="lang-HTML"><span class="hljs-tag">&lt;<span class="hljs-name">h4</span>&gt;</span>table<span class="hljs-tag">&lt;/<span class="hljs-name">h4</span>&gt;</span>
  385. <span class="hljs-tag">&lt;<span class="hljs-name">h4</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;ui horizontal divider header&quot;</span>&gt;</span>
  386. List of objects
  387. <span class="hljs-tag">&lt;/<span class="hljs-name">h4</span>&gt;</span>
  388. <span class="hljs-tag">&lt;<span class="hljs-name">table</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;ui celled table&quot;</span> <span class="hljs-attr">border</span>=<span class="hljs-string">&quot;0&quot;</span> <span class="hljs-attr">cellspacing</span>=<span class="hljs-string">&quot;0&quot;</span> <span class="hljs-attr">cellpadding</span>=<span class="hljs-string">&quot;0&quot;</span>&gt;</span>
  389. <span class="hljs-tag">&lt;<span class="hljs-name">thead</span>&gt;</span>
  390. <span class="hljs-tag">&lt;<span class="hljs-name">tr</span>&gt;</span>
  391. <span class="hljs-tag">&lt;<span class="hljs-name">th</span>&gt;</span>Name<span class="hljs-tag">&lt;/<span class="hljs-name">th</span>&gt;</span>
  392. <span class="hljs-tag">&lt;<span class="hljs-name">th</span>&gt;</span>Age<span class="hljs-tag">&lt;/<span class="hljs-name">th</span>&gt;</span>
  393. <span class="hljs-tag">&lt;<span class="hljs-name">th</span>&gt;</span>City<span class="hljs-tag">&lt;/<span class="hljs-name">th</span>&gt;</span>
  394. <span class="hljs-tag">&lt;/<span class="hljs-name">tr</span>&gt;</span>
  395. <span class="hljs-tag">&lt;/<span class="hljs-name">thead</span>&gt;</span>
  396. <span class="hljs-tag">&lt;<span class="hljs-name">tr</span> *<span class="hljs-attr">ngFor</span>=<span class="hljs-string">&quot;let p of people&quot;</span>&gt;</span>
  397. <span class="hljs-tag">&lt;<span class="hljs-name">td</span>&gt;</span>{{ p.name }}<span class="hljs-tag">&lt;/<span class="hljs-name">td</span>&gt;</span>
  398. <span class="hljs-tag">&lt;<span class="hljs-name">td</span>&gt;</span>{{ p.age }}<span class="hljs-tag">&lt;/<span class="hljs-name">td</span>&gt;</span>
  399. <span class="hljs-tag">&lt;<span class="hljs-name">td</span>&gt;</span>{{ p.city }}<span class="hljs-tag">&lt;/<span class="hljs-name">td</span>&gt;</span>
  400. <span class="hljs-tag">&lt;/<span class="hljs-name">tr</span>&gt;</span>
  401. <span class="hljs-tag">&lt;/<span class="hljs-name">table</span>&gt;</span>
  402. </code></pre>
  403. <p><code>&#x8F93;&#x51FA;</code></p>
  404. <table>
  405. <thead>
  406. <tr>
  407. <th style="text-align:center">Name</th>
  408. <th style="text-align:center">Age</th>
  409. <th style="text-align:center">City</th>
  410. </tr>
  411. </thead>
  412. <tbody>
  413. <tr>
  414. <td style="text-align:center">Anderson</td>
  415. <td style="text-align:center">35</td>
  416. <td style="text-align:center">Sao Paulo</td>
  417. </tr>
  418. <tr>
  419. <td style="text-align:center">John</td>
  420. <td style="text-align:center">12</td>
  421. <td style="text-align:center">Miami</td>
  422. </tr>
  423. <tr>
  424. <td style="text-align:center">Peter</td>
  425. <td style="text-align:center">22</td>
  426. <td style="text-align:center">New York</td>
  427. </tr>
  428. </tbody>
  429. </table>
  430. <p><code>&#x5D4C;&#x5957;&#x6570;&#x7EC4;</code></p>
  431. <pre><code class="lang-HTML"><span class="hljs-tag">&lt;<span class="hljs-name">h4</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;ui horizontal divider header&quot;</span>&gt;</span>
  432. Nested data
  433. <span class="hljs-tag">&lt;/<span class="hljs-name">h4</span>&gt;</span>
  434. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> *<span class="hljs-attr">ngFor</span>=<span class="hljs-string">&quot;let item of peopleByCity&quot;</span>&gt;</span>
  435. <span class="hljs-tag">&lt;<span class="hljs-name">h2</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;ui header&quot;</span>&gt;</span>{{ item.city }}<span class="hljs-tag">&lt;/<span class="hljs-name">h2</span>&gt;</span>
  436. <span class="hljs-tag">&lt;<span class="hljs-name">table</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;ui celled table&quot;</span>&gt;</span>
  437. <span class="hljs-tag">&lt;<span class="hljs-name">thead</span>&gt;</span>
  438. <span class="hljs-tag">&lt;<span class="hljs-name">tr</span>&gt;</span>
  439. <span class="hljs-tag">&lt;<span class="hljs-name">th</span>&gt;</span>Name<span class="hljs-tag">&lt;/<span class="hljs-name">th</span>&gt;</span>
  440. <span class="hljs-tag">&lt;<span class="hljs-name">th</span>&gt;</span>Age<span class="hljs-tag">&lt;/<span class="hljs-name">th</span>&gt;</span>
  441. <span class="hljs-tag">&lt;/<span class="hljs-name">tr</span>&gt;</span>
  442. <span class="hljs-tag">&lt;/<span class="hljs-name">thead</span>&gt;</span>
  443. <span class="hljs-tag">&lt;<span class="hljs-name">tr</span> *<span class="hljs-attr">ngFor</span>=<span class="hljs-string">&quot;let p of item.people&quot;</span>&gt;</span>
  444. <span class="hljs-tag">&lt;<span class="hljs-name">td</span>&gt;</span>{{ p.name }}<span class="hljs-tag">&lt;/<span class="hljs-name">td</span>&gt;</span>
  445. <span class="hljs-tag">&lt;<span class="hljs-name">td</span>&gt;</span>{{ p.age }}<span class="hljs-tag">&lt;/<span class="hljs-name">td</span>&gt;</span>
  446. <span class="hljs-tag">&lt;/<span class="hljs-name">tr</span>&gt;</span>
  447. <span class="hljs-tag">&lt;/<span class="hljs-name">table</span>&gt;</span>
  448. <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  449. </code></pre>
  450. <pre><code class="lang-typescript">peopleByCity: <span class="hljs-built_in">Object</span>;
  451. <span class="hljs-keyword">constructor</span>() {
  452. <span class="hljs-keyword">this</span>.peopleByCity = [
  453. {
  454. city: <span class="hljs-string">&apos;Miami&apos;</span>,
  455. people: [
  456. { name: <span class="hljs-string">&apos;John&apos;</span>, age: <span class="hljs-number">12</span> },
  457. { name: <span class="hljs-string">&apos;Angel&apos;</span>, age: <span class="hljs-number">22</span> }
  458. ]
  459. },
  460. {
  461. city: <span class="hljs-string">&apos;Sao Paulo&apos;</span>,
  462. people: [
  463. { name: <span class="hljs-string">&apos;Anderson&apos;</span>, age: <span class="hljs-number">35</span> },
  464. { name: <span class="hljs-string">&apos;Felipe&apos;</span>, age: <span class="hljs-number">36</span> }
  465. ]
  466. }
  467. ];
  468. }
  469. </code></pre>
  470. <p><code>&#x8F93;&#x51FA; Miami</code></p>
  471. <table>
  472. <thead>
  473. <tr>
  474. <th style="text-align:center">Name</th>
  475. <th style="text-align:center">Age</th>
  476. </tr>
  477. </thead>
  478. <tbody>
  479. <tr>
  480. <td style="text-align:center">John</td>
  481. <td style="text-align:center">12</td>
  482. </tr>
  483. <tr>
  484. <td style="text-align:center">Angel</td>
  485. <td style="text-align:center">22</td>
  486. </tr>
  487. </tbody>
  488. </table>
  489. <p><code>&#x8F93;&#x51FA; Sao Paulo</code></p>
  490. <table>
  491. <thead>
  492. <tr>
  493. <th style="text-align:center">Name</th>
  494. <th style="text-align:center">Age</th>
  495. </tr>
  496. </thead>
  497. <tbody>
  498. <tr>
  499. <td style="text-align:center">Anderson</td>
  500. <td style="text-align:center">35</td>
  501. </tr>
  502. <tr>
  503. <td style="text-align:center">Felipe</td>
  504. <td style="text-align:center">36</td>
  505. </tr>
  506. </tbody>
  507. </table>
  508. <p><code>&#x83B7;&#x53D6;&#x7D22;&#x5F15;</code></p>
  509. <pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;ui list&quot;</span> *<span class="hljs-attr">ngFor</span>=<span class="hljs-string">&quot;let c of cities; let num = index&quot;</span>&gt;</span>
  510. <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;item&quot;</span>&gt;</span>{{ num+1 }} - {{ c }}<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  511. <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  512. <span class="hljs-comment">&lt;!-- &#x8F93;&#x51FA; --&gt;</span>
  513. 1-Miami
  514. 2-Sao Paulo
  515. 3-New York
  516. </code></pre>
  517. <h3 id="ngnonbindable">ngNonBindable</h3>
  518. <blockquote>
  519. <p>&#x5F53;&#x6211;&#x4EEC;&#x60F3;&#x544A;&#x8BC9;Angular&#x4E0D;&#x8981;&#x7F16;&#x8BD1;&#x6216;&#x8005;&#x7ED1;&#x5B9A;&#x9875;&#x9762;&#x4E2D;&#x7684;&#x67D0;&#x4E2A;&#x7279;&#x6B8A;&#x90E8;&#x5206;&#x65F6;,&#x8981;&#x4F7F;&#x7528; ngNodBindable&#x6307;&#x4EE4;&#x3002;</p>
  520. </blockquote>
  521. <pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;ngNonBindableDome&quot;</span>&gt;</span>
  522. <span class="hljs-tag">&lt;<span class="hljs-name">span</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;borderd&quot;</span>&gt;</span>{{content}}<span class="hljs-tag">&lt;/<span class="hljs-name">span</span>&gt;</span>
  523. <span class="hljs-tag">&lt;<span class="hljs-name">span</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;pre&quot;</span> <span class="hljs-attr">ngNonBindable</span>&gt;</span>
  524. &amp;larr;This is what {{ content }} rendered
  525. <span class="hljs-tag">&lt;/<span class="hljs-name">span</span>&gt;</span>
  526. <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
  527. &#x8F93;&#x51FA;
  528. &#x6587;&#x7AE0; &#x2190;This is what {{ content }} rendered
  529. </code></pre>
  530. </div>
  531. <hr>
  532. <div class="btn-group btn-group-justified">
  533. <a class="btn" href="0_depend.html"><b>上一页:</b> 项目依赖</a>
  534. <a class="btn" href="from/"><b>下一页:</b> 表单</a>
  535. </div>
  536. </div>
  537. <div class="search-results">
  538. <div class="has-results">
  539. <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
  540. <ul class="search-results-list"></ul>
  541. </div>
  542. <div class="no-results">
  543. <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
  544. </div>
  545. </div>
  546. </div>
  547. </div>
  548. </div>
  549. </div>
  550. </div>
  551. </div>
  552. <footer class="gb-page-footer">
  553. <div class="container">
  554. <ul class="menu">
  555. <li class="pull-right">
  556. <span class="service-info">Copyright GitBook 2018</span>
  557. </li>
  558. <li>
  559. <a href="#">Return to the top</a>
  560. </li>
  561. <li>
  562. <a href="#">Updated May 30th 18</a>
  563. </li>
  564. </ul>
  565. </div>
  566. </footer>
  567. </div>
  568. <script src="../../gitbook/gitbook.js"></script>
  569. <script src="../../gitbook/gitbook-plugin-search-pro/jquery.mark.min.js"></script>
  570. <script src="../../gitbook/gitbook-plugin-search-pro/search.js"></script>
  571. <script src="../../gitbook/gitbook-plugin-lunr/lunr.min.js"></script>
  572. <script src="../../gitbook/gitbook-plugin-lunr/search-lunr.js"></script>
  573. <script>
  574. (function() {
  575. gitbook.page.hasChanged({"page":{"title":"内置指令","level":"3.1.2","depth":2,"next":{"title":"表单","level":"3.1.3","depth":2,"path":"angular/study_notes/from/README.md","ref":"angular/study_notes/from/README.md","articles":[{"title":"模板案例","level":"3.1.3.1","depth":3,"path":"angular/study_notes/from/0_template_case.md","ref":"angular/study_notes/from/0_template_case.md","articles":[]},{"title":"formControl","level":"3.1.3.2","depth":3,"path":"angular/study_notes/from/01_formControl.md","ref":"angular/study_notes/from/01_formControl.md","articles":[]},{"title":"directives_源码解析","level":"3.1.3.3","depth":3,"path":"angular/study_notes/from/02_directives.md","ref":"angular/study_notes/from/02_directives.md","articles":[]},{"title":"ngModel","level":"3.1.3.4","depth":3,"path":"angular/study_notes/from/03_ng_model.md","ref":"angular/study_notes/from/03_ng_model.md","articles":[]},{"title":"表单验证&自定义验证器","level":"3.1.3.5","depth":3,"path":"angular/study_notes/from/04_Form-Validation_&_Custom-Validator.md","ref":"angular/study_notes/from/04_Form-Validation_&_Custom-Validator.md","articles":[]},{"title":"监听表单数据变化","level":"3.1.3.6","depth":3,"path":"angular/study_notes/from/05_Listen_to_form_data_changes.md","ref":"angular/study_notes/from/05_Listen_to_form_data_changes.md","articles":[]},{"title":"问题收集","level":"3.1.3.7","depth":3,"path":"angular/study_notes/from/06_Problem_collection.md","ref":"angular/study_notes/from/06_Problem_collection.md","articles":[]}]},"previous":{"title":"项目依赖","level":"3.1.1","depth":2,"path":"angular/study_notes/0_depend.md","ref":"angular/study_notes/0_depend.md","articles":[]},"dir":"ltr"},"config":{"plugins":["theme-official@2.1.1","-sharing","-fontsettings","sitemap","-search","search-pro"],"root":"./docs/","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"sitemap":{"hostname":"https://blog.honghaitao.net/"},"search-pro":{"cutWordLib":"nodejieba","defineWord":["小需求","基础建设"]},"highlight":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"theme-official":{},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{"version":"0.0.1"},"title":"代码收集","gitbook":"3.1.1"},"file":{"path":"angular/study_notes/01_built-in_instructions.md","mtime":"2018-05-30T08:23:34.368Z","type":"markdown"},"gitbook":{"version":"3.1.1","time":"2018-05-30T08:55:08.693Z"},"basePath":"../..","book":{"language":""}});
  576. })();
  577. </script>
  578. </body>
  579. </html>