123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875 |
- <!DOCTYPE HTML>
- <html lang="" >
- <head>
- <meta charset="UTF-8">
- <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
- <title>ngModel · 代码收集</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="04_Form-Validation_&_Custom-Validator.html" />
-
-
- <link rel="prev" href="02_directives.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/master/doc/angular/study_notes/from/03_ng_model.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 ">
-
-
- <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
-
-
- 内置指令
-
- </a>
-
-
-
-
- <a href="./" class="list-group-item ">
-
-
- <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
-
-
- <i class="octicon octicon-chevron-down"></i>
-
- 表单
-
- </a>
-
-
-
-
-
- <a href="0_template_case.html" class="list-group-item ">
-
-
- <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
-
- <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
-
-
- 模板案例
-
- </a>
-
-
-
-
- <a href="01_formControl.html" class="list-group-item ">
-
-
- <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
-
- <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
-
-
- formControl
-
- </a>
-
-
-
-
- <a href="02_directives.html" class="list-group-item ">
-
-
- <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
-
- <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
-
-
- directives_源码解析
-
- </a>
-
-
-
-
- <a href="03_ng_model.html" class="list-group-item active">
-
-
- <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
-
- <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
-
-
- ngModel
-
- </a>
-
-
-
-
- <a href="04_Form-Validation_&_Custom-Validator.html" class="list-group-item ">
-
-
- <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
-
- <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
-
-
- 表单验证&自定义验证器
-
- </a>
-
-
-
-
- <a href="05_Listen_to_form_data_changes.html" class="list-group-item ">
-
-
- <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
-
- <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
-
-
- 监听表单数据变化
-
- </a>
-
-
-
-
- <a href="06_Problem_collection.html" class="list-group-item ">
-
-
- <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
-
- <i class="octicon octicon-chevron-down" style="opacity: 0"></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="双向绑定数据写法说明">双向绑定数据写法说明</h3>
- <blockquote>
- <p>双向绑定数据的写法是[(ngModel)]="modelName".modelName命名必须为有意义,如:productName
- 使用: </p>
- <pre><code class="lang-html"><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">ngModel</span>)]=<span class="hljs-string">"productName"</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">placeholder</span>=<span class="hljs-string">""</span>></span>
- </code></pre>
- <p>环境:</p>
- <pre><code class="lang-typescript"><span class="hljs-comment">// 必须在根模块导入 FormsModule 才可以使用 ngModel</span>
- <span class="hljs-keyword">import</span> {FormsModule} from <span class="hljs-string">'@angular/forms'</span>;
- @NgModule({
- <span class="hljs-comment">// ...</span>
- imports: [
- <span class="hljs-comment">// ...</span>
- FormsModule
- <span class="hljs-comment">// ...</span>
- ]
- <span class="hljs-comment">//...</span>
- })
- </code></pre>
- </blockquote>
- <h3 id="设置appmodulets">设置app.module.ts</h3>
- <pre><code class="lang-typescript"><span class="hljs-comment">// 下面是引入开发使用到的库(模板仓库)</span>
- <span class="hljs-keyword">import</span> {BrowserModule} from <span class="hljs-string">'@angular/platform-browser'</span>;
- <span class="hljs-keyword">import</span> {NgModule} from <span class="hljs-string">'@angular/core'</span>;
- <span class="hljs-keyword">import</span> {FormsModule,ReactiveFormsModule} from <span class="hljs-string">'@angular/forms'</span>;
- <span class="hljs-comment">// 组件引入方式如下:</span>
- <span class="hljs-comment">// import { NgModelComponent } from './ng-model/ng-model.component';</span>
- @NgModule({
- declarations: [
- <span class="hljs-comment">// ... 这里是引入组件</span>
- <span class="hljs-comment">// NgModelComponent</span>
- ],
- <span class="hljs-comment">// 导入库</span>
- imports: [
- BrowserModule,
- FormsModule,
- ReactiveFormsModule
- ],
- providers: [],
- bootstrap: [AppComponent]
- })
- </code></pre>
- <h3 id="创建组件">创建组件</h3>
- <pre><code class="lang-bash">$ ng generate component ngModel
- <span class="hljs-comment"># installing component</span>
- <span class="hljs-comment"># create src/app/ok/ng-model.component.css</span>
- <span class="hljs-comment"># create src/app/ok/ng-model.component.html</span>
- <span class="hljs-comment"># create src/app/ok/ng-model.component.spec.ts</span>
- <span class="hljs-comment"># create src/app/ok/ng-model.component.ts</span>
- <span class="hljs-comment"># update src/app/app.module.ts</span>
- </code></pre>
- <h3 id="设置ng-model组件样式">设置ng-model组件样式</h3>
- <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 raised segment"</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">form</span> [<span class="hljs-attr">formGroup</span>]=<span class="hljs-string">"myForm"</span>
- (<span class="hljs-attr">ngSubmit</span>)=<span class="hljs-string">"onSubmit(myForm.value)"</span>
- <span class="hljs-attr">class</span>=<span class="hljs-string">"ui form"</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"field"</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"productNameInput"</span>></span>Product Name<span class="hljs-tag"></<span class="hljs-name">label</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">id</span>=<span class="hljs-string">"productNameInput"</span>
- <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Product Name"</span>
- [<span class="hljs-attr">formControl</span>]=<span class="hljs-string">"myForm.get('productName')"</span>
- [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"productName"</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 info message"</span>></span>
- The product name is: {{productName}}
- <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">type</span>=<span class="hljs-string">"submit"</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"ui button"</span>></span>提交<span class="hljs-tag"></<span class="hljs-name">button</span>></span>
- <span class="hljs-tag"><<span class="hljs-name">button</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"submit"</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"ui button"</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"myForm.reset()"</span>></span>重置<span class="hljs-tag"></<span class="hljs-name">button</span>></span>
- <span class="hljs-tag"></<span class="hljs-name">form</span>></span>
- <span class="hljs-tag"></<span class="hljs-name">div</span>></span>
- </code></pre>
- <h3 id="设置ng-model组件逻辑部分">设置ng-model组件逻辑部分</h3>
- <pre><code class="lang-typescript"><span class="hljs-keyword">import</span> {Component, OnInit} from <span class="hljs-string">'@angular/core'</span>;
- <span class="hljs-keyword">import</span> {
- FormBuilder,
- FormGroup,
- Validators,
- } from <span class="hljs-string">"@angular/forms"</span>
- @Component({
- selector: <span class="hljs-string">'app-ng-model'</span>,
- templateUrl: <span class="hljs-string">'./ng-model.component.html'</span>,
- styleUrls: [<span class="hljs-string">'./ng-model.component.css'</span>]
- })
- <span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> NgModelComponent <span class="hljs-keyword">implements</span> OnInit {
- myForm: FormGroup;
- productName: <span class="hljs-built_in">string</span>;
- <span class="hljs-comment">// 注入: FormBuilder</span>
- <span class="hljs-comment">/*在这期间, Angular将会注入一个从 FormBuilder 类创建的对象实例,并把它赋值给 fb 变量(来
- 自构造函数)*/</span>
- <span class="hljs-keyword">constructor</span>(fb: FormBuilder) {
- <span class="hljs-keyword">this</span>.myForm = fb.group({
- <span class="hljs-string">'productName'</span>: [<span class="hljs-string">''</span>, Validators.required]
- })
- }
- onSubmit(value: <span class="hljs-built_in">string</span>): <span class="hljs-built_in">void</span> {
- <span class="hljs-built_in">console</span>.log(<span class="hljs-string">'你的提交值'</span>, value);
- }
- ngOnInit() {
- }
- }
- </code></pre>
- </div>
-
- <hr>
- <div class="btn-group btn-group-justified">
-
- <a class="btn" href="02_directives.html"><b>上一页:</b> directives_源码解析</a>
-
-
- <a class="btn" href="04_Form-Validation_&_Custom-Validator.html"><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":"ngModel","level":"3.1.3.4","depth":3,"next":{"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":[]},"previous":{"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":[]},"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/from/03_ng_model.md","mtime":"2018-05-30T08:23:34.368Z","type":"markdown"},"gitbook":{"version":"3.1.1","time":"2018-05-30T08:28:30.284Z"},"basePath":"../../..","book":{"language":""}});
- })();
- </script>
-
- </body>
- </html>
|