123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985 |
- <!DOCTYPE HTML>
- <html lang="" >
- <head>
- <meta charset="UTF-8">
- <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
- <title>内置指令 · 代码收集</title>
- <meta http-equiv="X-UA-Compatible" content="IE=edge" />
- <meta name="description" content="">
- <meta name="generator" content="GitBook 3.1.1">
-
-
-
-
- <link rel="stylesheet" href="../../gitbook/style.css">
-
-
-
- <link rel="stylesheet" href="../../gitbook/gitbook-plugin-search-pro/search.css">
-
-
-
- <link rel="stylesheet" href="../../gitbook/gitbook-plugin-highlight/website.css">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <meta name="HandheldFriendly" content="true"/>
- <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
- <meta name="apple-mobile-web-app-capable" content="yes">
- <meta name="apple-mobile-web-app-status-bar-style" content="black">
- <link rel="apple-touch-icon-precomposed" sizes="152x152" href="../../gitbook/images/apple-touch-icon-precomposed-152.png">
- <link rel="shortcut icon" href="../../gitbook/images/favicon.ico" type="image/x-icon">
-
- <link rel="next" href="from/" />
-
-
- <link rel="prev" href="0_depend.html" />
-
- </head>
- <body>
-
- <div class="gb-page-wrapper">
- <header class="gb-page-header">
- <div class="container">
-
-
- <div id="book-search-input" role="search">
- <input type="text" placeholder="Type to search" />
- </div>
- <a href="../.." class="logo">
- <img src="../../gitbook/images/logo/128.png">
- <h1>代码收集</h1>
- </a>
-
-
- <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">
- <i class="octicon octicon-mark-github"></i> 在GitHub编辑本页
- </a>
- <a href="../../faq.md" class="btn btn-link pull-right hidden-xs">
- F.A.Q
- </a>
- <a href="https://github.com/seamong/myBlogs/README.md" target="_blank" class="btn btn-link pull-right hidden-xs">
- 当前版本0.0.1
- </a>
-
- </div>
- </header>
- <div class="gb-page-body">
- <div class="gb-page-inner">
- <div class="container">
- <div class="row">
- <div class="col-md-3">
-
-
- <div class="panel panel-default">
-
- <div class="panel-heading">
- <h3 class="panel-title">介绍</h3>
- </div>
-
- <div class="list-group">
-
-
-
- <a href="../../" class="list-group-item ">
-
-
-
- 关于本文档
-
- </a>
-
-
-
- </div>
- </div>
-
- <div class="panel panel-default">
-
- <div class="panel-heading">
- <h3 class="panel-title">JavaScript</h3>
- </div>
-
- <div class="list-group">
-
-
-
- <a href="../../JavaScript/principle/" class="list-group-item ">
-
-
-
- <i class="octicon octicon-chevron-right"></i>
-
- 原理解析
-
- </a>
-
-
-
-
- <a href="../../JavaScript/cases/" class="list-group-item ">
-
-
-
- <i class="octicon octicon-chevron-right"></i>
-
- 案例解析
-
- </a>
-
-
-
- </div>
- </div>
-
- <div class="panel panel-default">
-
- <div class="panel-heading">
- <h3 class="panel-title">angular</h3>
- </div>
-
- <div class="list-group">
-
-
-
- <a href="./" class="list-group-item ">
-
-
-
- <i class="octicon octicon-chevron-down"></i>
-
- Study notes
-
- </a>
-
-
-
-
-
- <a href="0_depend.html" class="list-group-item ">
-
-
- <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
-
-
- 项目依赖
-
- </a>
-
-
-
-
- <a href="01_built-in_instructions.html" class="list-group-item active">
-
-
- <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
-
-
- 内置指令
-
- </a>
-
-
-
-
- <a href="from/" class="list-group-item ">
-
-
- <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
-
-
- <i class="octicon octicon-chevron-right"></i>
-
- 表单
-
- </a>
-
-
-
-
-
-
- <a href="../ng.html" class="list-group-item ">
-
-
-
- ng
-
- </a>
-
-
-
- </div>
- </div>
-
- <div class="panel panel-default">
-
- <div class="panel-heading">
- <h3 class="panel-title">css</h3>
- </div>
-
- <div class="list-group">
-
-
-
- <a href="../../css/principle/" class="list-group-item ">
-
-
-
- 原理解析
-
- </a>
-
-
-
-
- <a href="../../css/cases/" class="list-group-item ">
-
-
-
- <i class="octicon octicon-chevron-right"></i>
-
- 案例收集
-
- </a>
-
-
-
- </div>
- </div>
-
- <div class="panel panel-default">
-
- <div class="panel-heading">
- <h3 class="panel-title">vue</h3>
- </div>
-
- <div class="list-group">
-
-
-
- <a href="../../vue/components/" class="list-group-item ">
-
-
-
- <i class="octicon octicon-chevron-right"></i>
-
- components
-
- </a>
-
-
-
-
- <a href="../../vue/router/" class="list-group-item ">
-
-
-
- <i class="octicon octicon-chevron-right"></i>
-
- router
-
- </a>
-
-
-
-
- <a href="../../vue/vuex/" class="list-group-item ">
-
-
-
- VUE
-
- </a>
-
-
-
- </div>
- </div>
-
- <div class="panel panel-default">
-
- <div class="panel-heading">
- <h3 class="panel-title">ubuntu</h3>
- </div>
-
- <div class="list-group">
-
-
-
- <a href="../../ubuntu/serves/" class="list-group-item ">
-
-
-
- <i class="octicon octicon-chevron-right"></i>
-
- 服务器生存指南
-
- </a>
-
-
-
-
- <a href="../../ubuntu/instruction.html" class="list-group-item ">
-
-
-
- 常用指令
-
- </a>
-
-
-
- </div>
- </div>
-
- <div class="panel panel-default">
-
- <div class="panel-heading">
- <h3 class="panel-title">GIT</h3>
- </div>
-
- <div class="list-group">
-
-
-
- <a href="../../git/git.html" class="list-group-item ">
-
-
-
- git 命令
-
- </a>
-
-
-
- </div>
- </div>
-
- <div class="panel panel-default">
-
- <div class="list-group">
-
-
-
- <a href="../../other/faq.html" class="list-group-item ">
-
-
-
- FAQ
-
- </a>
-
-
-
-
- <a href="../../other/examples.html" class="list-group-item ">
-
-
-
- Examples
-
- </a>
-
-
-
- </div>
- </div>
-
- </div>
- <div class="col-md-9">
-
- <div id="book-search-results">
- <div class="search-noresults">
-
-
- <div class="gb-markdown book-page-inner">
- <h3 id="ngif">ngIf</h3>
- <blockquote>
- <p><strong> 如果你希望根据一个条件来决定显示或隐藏一个元素,可以使用 ngIf 指令。这个条件是由你传给指令的表达式的结果决定的。<br>
- </strong> 如果表达式的结果返回的是一个假值,那么元素会从DOM上被移除。</p>
- </blockquote>
- <pre><code class="lang-html"># 例子:
- <span class="hljs-tag"><<span class="hljs-name">div</span> *<span class="hljs-attr">ngIf</span> = "<span class="hljs-attr">false</span>" ></span><span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> *<span class="hljs-attr">ngIf</span> = "<span class="hljs-attr">a</span> ></span> b" ><span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> *<span class="hljs-attr">ngIf</span> = "<span class="hljs-attr">str</span> =<span class="hljs-string">=</span> '<span class="hljs-attr">yes</span>'" ></span><span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> *<span class="hljs-attr">ngIf</span> = "<span class="hljs-attr">myFunc</span>()" ></span><span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- </code></pre>
- <h3 id="ngswitch">ngSwitch</h3>
- <blockquote>
- <p>** 实际作用同等于 switch语句</p>
- </blockquote>
- <pre><code class="lang-html"># 通过2组实例进行比较
- ## ngIf
- 根据同值不同条件渲染不同元素
- <span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"container"</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"myVar == 'A'"</span>></span>Var is A<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"myVar == 'B'"</span>></span>Var is B<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"myVar != 'A' && myVar != 'B'"</span>></span>Var is something else<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- <span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- 增加条件与值
- <span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"container"</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"myVar == 'A'"</span>></span>Var is A<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"myVar == 'B'"</span>></span>Var is B<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"myVar == 'C'"</span>></span>Var is C<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> *<span class="hljs-attr">ngIf</span>=<span class="hljs-string">"myVar != 'A' && myVar != 'B' && myVar != 'C'"</span>></span>Var is something else<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- <span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- ### ngSwitch
- 改变上述情况,官方加入 ngSwitch
- 使用 ngSwitchCase 指令描述已知结果
- 使用 ngSwitchDefault 指令处理所有其他未知情况
- 重写实例
- <span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"container"</span> [<span class="hljs-attr">ngSwitch</span>]=<span class="hljs-string">"myVar"</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> *<span class="hljs-attr">ngSwitchCase</span>=<span class="hljs-string">"'A'"</span>></span>Var is A<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> *<span class="hljs-attr">ngSwitchCase</span>=<span class="hljs-string">"'B'"</span>></span>Var is B<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> *<span class="hljs-attr">ngSwitchDefault</span>></span>Var is something else<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- <span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- 添加条件: ngSwitchDefault 元素是可选的。如果我们不用它,那么当 myVar 没有匹配到任何期望的值
- 时就不会渲染任何东西。
- <span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"container"</span> [<span class="hljs-attr">ngSwitch</span>]=<span class="hljs-string">"myVar"</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> *<span class="hljs-attr">ngSwitchCase</span>=<span class="hljs-string">"'A'"</span>></span>Var is A<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> *<span class="hljs-attr">ngSwitchCase</span>=<span class="hljs-string">"'B'"</span>></span>Var is B<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> *<span class="hljs-attr">ngSwitchCase</span>=<span class="hljs-string">"'C'"</span>></span>Var is C<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> *<span class="hljs-attr">ngSwitchDefault</span>></span>Var is something else<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- <span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- 为不同的元素声明同样的 *ngSwitchCase 值
- 在下面的例子中,当 choice 的值是 2 的时候,第2个和第5个 li 都会被渲染。
- <span class="hljs-tag"><<span class="hljs-name">h4</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"ui horizontal divider header"</span>></span>
- Current choice is {{ choice }}
- <span class="hljs-tag"></<span class="hljs-name">h4</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"ui raised segment"</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">ul</span> [<span class="hljs-attr">ngSwitch</span>]=<span class="hljs-string">"choice"</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">li</span> *<span class="hljs-attr">ngSwitchCase</span>=<span class="hljs-string">"1"</span>></span>First choice<span class="hljs-tag"></<span class="hljs-name">li</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">li</span> *<span class="hljs-attr">ngSwitchCase</span>=<span class="hljs-string">"2"</span>></span>Second choice<span class="hljs-tag"></<span class="hljs-name">li</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">li</span> *<span class="hljs-attr">ngSwitchCase</span>=<span class="hljs-string">"3"</span>></span>Third choice<span class="hljs-tag"></<span class="hljs-name">li</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">li</span> *<span class="hljs-attr">ngSwitchCase</span>=<span class="hljs-string">"4"</span>></span>Fourth choice<span class="hljs-tag"></<span class="hljs-name">li</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">li</span> *<span class="hljs-attr">ngSwitchCase</span>=<span class="hljs-string">"2"</span>></span>Second choice, again<span class="hljs-tag"></<span class="hljs-name">li</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">li</span> *<span class="hljs-attr">ngSwitchDefault</span>></span>Default choice<span class="hljs-tag"></<span class="hljs-name">li</span>></span>
- <span class="hljs-tag"></<span class="hljs-name">ul</span>></span>
- <span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">style</span>=<span class="hljs-string">"margin-top: 20px;"</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">button</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"ui primary button"</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"nextChoice()"</span>></span>
- Next choice
- <span class="hljs-tag"></<span class="hljs-name">button</span>></span>
- <span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- </code></pre>
- <h3 id="ngstyle">ngStyle</h3>
- <blockquote>
- <p>第一种用法:使用 ngStyle 指令,可以通过Angular表达式给特定的DOM元素设定CSS属性。
- 该指令最简单的用法就是 [style.<cssproperty>]="value" 的形式,</cssproperty></p>
- </blockquote>
- <pre><code class="lang-html"><span class="hljs-tag"><<span class="hljs-name">div</span> [<span class="hljs-attr">style.background-color</span>]=<span class="hljs-string">"'yellow'"</span>></span>
- Uses fixed yellow background
- <span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- </code></pre>
- <blockquote>
- <p>第二种用法:设置固定值的方式就是使用 ngStyle 属性,使用键值对来设置每个属性</p>
- </blockquote>
- <pre><code class="lang-html"><span class="hljs-comment"><!--连字符是不允许出现在对象的键值对中的,需要使用引号--></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> [<span class="hljs-attr">ngStyle</span>]=<span class="hljs-string">"{color: 'white', 'background-color': 'blue'}"</span>></span>
- Uses fixed white text on blue background
- <span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- </code></pre>
- <blockquote>
- <p>第三种用法:这个才是ngStyle的出彩的地方</p>
- </blockquote>
- <pre><code class="lang-html"><span class="hljs-comment"><!--在component中声明变量,定义apply函数,将输入框中对应的值,通过ngStyle绑定到颜色与字体大小的属性上去--></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"ui input"</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text"</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"color"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"{{color}}"</span> #<span class="hljs-attr">colorinput</span>></span>
- <span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"ui input"</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text"</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"fontSize"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"{{fontSize}}"</span> #<span class="hljs-attr">fontinput</span>></span>
- <span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">button</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"ui primary button"</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"apply(colorinput.value, fontinput.value)"</span>></span>
- Apply setting
- <span class="hljs-tag"></<span class="hljs-name">button</span>></span>
- <span class="hljs-comment"><!--数据绑定的2种方式--></span>
- <span class="hljs-tag"><<span class="hljs-name">span</span> [<span class="hljs-attr">ngStyle</span>]=<span class="hljs-string">"{color: color,'font-size': fontSize + 'em'}"</span>></span>
- {{ color }} text
- <span class="hljs-tag"></<span class="hljs-name">span</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> [<span class="hljs-attr">style.background-color</span>]=<span class="hljs-string">"color"</span>
- [<span class="hljs-attr">style.font-size.em</span>]=<span class="hljs-string">"fontSize"</span>
- <span class="hljs-attr">style</span>=<span class="hljs-string">"color: white;"</span>></span>
- {{ color }} background
- <span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- </code></pre>
- <pre><code class="lang-typescript"><span class="hljs-comment">// 定义数据类型,定义触发事件</span>
- <span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> InventoryAppComponent <span class="hljs-keyword">implements</span> OnInit {
- color:<span class="hljs-built_in">string</span>;
- fontSize:<span class="hljs-built_in">number</span>;
- apply(color: <span class="hljs-built_in">string</span>, fontSize: <span class="hljs-built_in">number</span>) {
- <span class="hljs-keyword">this</span>.color = color;
- <span class="hljs-keyword">this</span>.fontSize = fontSize;
- }
- <span class="hljs-keyword">constructor</span>() {
- }
- ngOnInit() {
- }
- }
- </code></pre>
- <h3 id="ngclass">ngClass</h3>
- <blockquote>
- <p>ngClass 指令在HTML模板中用 ngClass 属性来表示,让你能动态设置和改变一个给定DOM元素的CSS类。
- 以下是最简单的用法。</p>
- </blockquote>
- <pre><code class="lang-scss"><span class="hljs-selector-class">.bordered</span> {
- <span class="hljs-attribute">border</span>: <span class="hljs-number">1px</span> dashed black;
- <span class="hljs-attribute">background-color</span>: <span class="hljs-number">#eee</span>;
- }
- </code></pre>
- <pre><code class="lang-html"><span class="hljs-tag"><<span class="hljs-name">div</span> [<span class="hljs-attr">ngClass</span>]=<span class="hljs-string">"{bordered: false}"</span>></span>This is never bordered<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> [<span class="hljs-attr">ngClass</span>]=<span class="hljs-string">"{bordered: true}"</span>></span>This is always bordered<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- </code></pre>
- <blockquote>
- <p>动态添加class</p>
- </blockquote>
- <pre><code class="lang-html"><span class="hljs-comment"><!-- *'`'符号是为了避免gitbook渲染页面出现故障* --></span>
- <span class="hljs-comment"><!-- 通过ngClass绑定数据到各元素的class上 --></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> [<span class="hljs-attr">ngClass</span>]=<span class="hljs-string">"classesObj"</span>></span>
- Using object var. Border `{{ classesObj.bordered ? "ON" : "OFF" }}`
- <span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">hr</span>></span>
- <span class="hljs-comment"><!-- 根据条件绑定数据 --></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> [<span class="hljs-attr">ngClass</span>]=<span class="hljs-string">"{bordered: isBordered}"</span>></span>
- Using object literal. Border `{{ isBordered ? "ON" : "OFF" }}`
- <span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">hr</span>></span>
- <span class="hljs-comment"><!-- 定义数组绑定class --></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"base"</span> [<span class="hljs-attr">ngClass</span>]=<span class="hljs-string">"['blue', 'round']"</span>></span>
- This will always have a blue background and
- round corners
- <span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- <span class="hljs-comment"><!-- 动态定义数组绑定类 --></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"base"</span> [<span class="hljs-attr">ngClass</span>]=<span class="hljs-string">"classList"</span>></span>
- <span class="hljs-comment"><!-- 判断类是否存在 --></span>
- This is { { classList.indexOf('blue') > -1 ? "" : "NOT"}} blue
- and { { classList.indexOf('round') > 1 ? "" :"NOT" }} round
- <span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- </code></pre>
- <pre><code class="lang-typescript"><span class="hljs-comment">// 定义数据,并赋值</span>
- <span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> InventoryAppComponent <span class="hljs-keyword">implements</span> OnInit {
- isBordered: <span class="hljs-built_in">boolean</span>;
- classesObj: <span class="hljs-built_in">Object</span>;
- classList: <span class="hljs-built_in">string</span>[];
- <span class="hljs-keyword">constructor</span>() {
- <span class="hljs-keyword">this</span>.isBordered = <span class="hljs-literal">true</span>;
- <span class="hljs-keyword">this</span>.classesObj = {
- bordered : <span class="hljs-string">"bordered"</span>
- };
- <span class="hljs-keyword">this</span>.classList = [<span class="hljs-string">'blue'</span>, <span class="hljs-string">'round'</span>];
- <span class="hljs-built_in">console</span>.log(<span class="hljs-keyword">this</span>)
- }
- ngOnInit() {
- }
- }
- </code></pre>
- <h3 id="ngfor">ngFor</h3>
- <blockquote>
- <p>这个指令的任务是重复一个给定的DOM元素 (或一组DOM元素),每次重复都会从数组中取
- 一个不同的值。<br>
- 它的语法是 *ngFor="let item of items" 。</p>
- </blockquote>
- <p><code>简化版</code></p>
- <pre><code class="lang-typescript">cities: <span class="hljs-built_in">string</span>[];
- <span class="hljs-keyword">constructor</span>() {
- <span class="hljs-keyword">this</span>.cities = [<span class="hljs-string">'Miami'</span>, <span class="hljs-string">'Sao Paulo'</span>, <span class="hljs-string">'New York'</span>];
- }
- </code></pre>
- <pre><code class="lang-HTML"><span class="hljs-tag"><<span class="hljs-name">h4</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"ui horizontal divider header"</span>></span>
- Simple list of strings
- <span class="hljs-tag"></<span class="hljs-name">h4</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"ui list"</span> *<span class="hljs-attr">ngFor</span>=<span class="hljs-string">"let c of cities"</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"item"</span>></span>{{ c }}<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- <span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- <span class="hljs-comment"><!-- 输出 --></span>
- Miami
- Sao Paulo
- New York
- </code></pre>
- <p><code>进阶版</code></p>
- <pre><code class="lang-typescript">people: <span class="hljs-built_in">Object</span>[];
- <span class="hljs-keyword">constructor</span>() {
- <span class="hljs-keyword">this</span>.people = [
- { name: <span class="hljs-string">'Anderson'</span>, age: <span class="hljs-number">35</span>, city: <span class="hljs-string">'Sao Paulo'</span> },
- { name: <span class="hljs-string">'John'</span>, age: <span class="hljs-number">12</span>, city: <span class="hljs-string">'Miami'</span> },
- { name: <span class="hljs-string">'Peter'</span>, age: <span class="hljs-number">22</span>, city: <span class="hljs-string">'New York'</span> }
- ];
- }
- </code></pre>
- <pre><code class="lang-HTML"><span class="hljs-tag"><<span class="hljs-name">h4</span>></span>table<span class="hljs-tag"></<span class="hljs-name">h4</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">h4</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"ui horizontal divider header"</span>></span>
- List of objects
- <span class="hljs-tag"></<span class="hljs-name">h4</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">table</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"ui celled table"</span> <span class="hljs-attr">border</span>=<span class="hljs-string">"0"</span> <span class="hljs-attr">cellspacing</span>=<span class="hljs-string">"0"</span> <span class="hljs-attr">cellpadding</span>=<span class="hljs-string">"0"</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">thead</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">tr</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">th</span>></span>Name<span class="hljs-tag"></<span class="hljs-name">th</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">th</span>></span>Age<span class="hljs-tag"></<span class="hljs-name">th</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">th</span>></span>City<span class="hljs-tag"></<span class="hljs-name">th</span>></span>
- <span class="hljs-tag"></<span class="hljs-name">tr</span>></span>
- <span class="hljs-tag"></<span class="hljs-name">thead</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">tr</span> *<span class="hljs-attr">ngFor</span>=<span class="hljs-string">"let p of people"</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">td</span>></span>{{ p.name }}<span class="hljs-tag"></<span class="hljs-name">td</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">td</span>></span>{{ p.age }}<span class="hljs-tag"></<span class="hljs-name">td</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">td</span>></span>{{ p.city }}<span class="hljs-tag"></<span class="hljs-name">td</span>></span>
- <span class="hljs-tag"></<span class="hljs-name">tr</span>></span>
- <span class="hljs-tag"></<span class="hljs-name">table</span>></span>
- </code></pre>
- <p><code>输出</code></p>
- <table>
- <thead>
- <tr>
- <th style="text-align:center">Name</th>
- <th style="text-align:center">Age</th>
- <th style="text-align:center">City</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td style="text-align:center">Anderson</td>
- <td style="text-align:center">35</td>
- <td style="text-align:center">Sao Paulo</td>
- </tr>
- <tr>
- <td style="text-align:center">John</td>
- <td style="text-align:center">12</td>
- <td style="text-align:center">Miami</td>
- </tr>
- <tr>
- <td style="text-align:center">Peter</td>
- <td style="text-align:center">22</td>
- <td style="text-align:center">New York</td>
- </tr>
- </tbody>
- </table>
- <p><code>嵌套数组</code></p>
- <pre><code class="lang-HTML"><span class="hljs-tag"><<span class="hljs-name">h4</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"ui horizontal divider header"</span>></span>
- Nested data
- <span class="hljs-tag"></<span class="hljs-name">h4</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> *<span class="hljs-attr">ngFor</span>=<span class="hljs-string">"let item of peopleByCity"</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">h2</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"ui header"</span>></span>{{ item.city }}<span class="hljs-tag"></<span class="hljs-name">h2</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">table</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"ui celled table"</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">thead</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">tr</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">th</span>></span>Name<span class="hljs-tag"></<span class="hljs-name">th</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">th</span>></span>Age<span class="hljs-tag"></<span class="hljs-name">th</span>></span>
- <span class="hljs-tag"></<span class="hljs-name">tr</span>></span>
- <span class="hljs-tag"></<span class="hljs-name">thead</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">tr</span> *<span class="hljs-attr">ngFor</span>=<span class="hljs-string">"let p of item.people"</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">td</span>></span>{{ p.name }}<span class="hljs-tag"></<span class="hljs-name">td</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">td</span>></span>{{ p.age }}<span class="hljs-tag"></<span class="hljs-name">td</span>></span>
- <span class="hljs-tag"></<span class="hljs-name">tr</span>></span>
- <span class="hljs-tag"></<span class="hljs-name">table</span>></span>
- <span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- </code></pre>
- <pre><code class="lang-typescript">peopleByCity: <span class="hljs-built_in">Object</span>;
- <span class="hljs-keyword">constructor</span>() {
- <span class="hljs-keyword">this</span>.peopleByCity = [
- {
- city: <span class="hljs-string">'Miami'</span>,
- people: [
- { name: <span class="hljs-string">'John'</span>, age: <span class="hljs-number">12</span> },
- { name: <span class="hljs-string">'Angel'</span>, age: <span class="hljs-number">22</span> }
- ]
- },
- {
- city: <span class="hljs-string">'Sao Paulo'</span>,
- people: [
- { name: <span class="hljs-string">'Anderson'</span>, age: <span class="hljs-number">35</span> },
- { name: <span class="hljs-string">'Felipe'</span>, age: <span class="hljs-number">36</span> }
- ]
- }
- ];
- }
- </code></pre>
- <p><code>输出 Miami</code></p>
- <table>
- <thead>
- <tr>
- <th style="text-align:center">Name</th>
- <th style="text-align:center">Age</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td style="text-align:center">John</td>
- <td style="text-align:center">12</td>
- </tr>
- <tr>
- <td style="text-align:center">Angel</td>
- <td style="text-align:center">22</td>
- </tr>
- </tbody>
- </table>
- <p><code>输出 Sao Paulo</code></p>
- <table>
- <thead>
- <tr>
- <th style="text-align:center">Name</th>
- <th style="text-align:center">Age</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td style="text-align:center">Anderson</td>
- <td style="text-align:center">35</td>
- </tr>
- <tr>
- <td style="text-align:center">Felipe</td>
- <td style="text-align:center">36</td>
- </tr>
- </tbody>
- </table>
- <p><code>获取索引</code></p>
- <pre><code class="lang-html"><span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"ui list"</span> *<span class="hljs-attr">ngFor</span>=<span class="hljs-string">"let c of cities; let num = index"</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"item"</span>></span>{{ num+1 }} - {{ c }}<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- <span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- <span class="hljs-comment"><!-- 输出 --></span>
- 1-Miami
- 2-Sao Paulo
- 3-New York
- </code></pre>
- <h3 id="ngnonbindable">ngNonBindable</h3>
- <blockquote>
- <p>当我们想告诉Angular不要编译或者绑定页面中的某个特殊部分时,要使用 ngNodBindable指令。</p>
- </blockquote>
- <pre><code class="lang-html"><span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"ngNonBindableDome"</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">span</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"borderd"</span>></span>{{content}}<span class="hljs-tag"></<span class="hljs-name">span</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">span</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"pre"</span> <span class="hljs-attr">ngNonBindable</span>></span>
- &larr;This is what {{ content }} rendered
- <span class="hljs-tag"></<span class="hljs-name">span</span>></span>
- <span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- 输出
- 文章 ←This is what {{ content }} rendered
- </code></pre>
- </div>
-
- <hr>
- <div class="btn-group btn-group-justified">
-
- <a class="btn" href="0_depend.html"><b>上一页:</b> 项目依赖</a>
-
-
- <a class="btn" href="from/"><b>下一页:</b> 表单</a>
-
- </div>
-
- </div>
- <div class="search-results">
- <div class="has-results">
-
- <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
- <ul class="search-results-list"></ul>
-
- </div>
- <div class="no-results">
-
- <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
-
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <footer class="gb-page-footer">
- <div class="container">
- <ul class="menu">
- <li class="pull-right">
- <span class="service-info">Copyright GitBook 2018</span>
- </li>
- <li>
- <a href="#">Return to the top</a>
- </li>
- <li>
- <a href="#">Updated May 30th 18</a>
- </li>
- </ul>
- </div>
- </footer>
- </div>
- <script src="../../gitbook/gitbook.js"></script>
-
- <script src="../../gitbook/gitbook-plugin-search-pro/jquery.mark.min.js"></script>
-
-
- <script src="../../gitbook/gitbook-plugin-search-pro/search.js"></script>
-
-
- <script src="../../gitbook/gitbook-plugin-lunr/lunr.min.js"></script>
-
-
- <script src="../../gitbook/gitbook-plugin-lunr/search-lunr.js"></script>
-
- <script>
- (function() {
- 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":""}});
- })();
- </script>
-
- </body>
- </html>
|