{"id":523,"date":"2019-12-21T13:10:01","date_gmt":"2019-12-21T05:10:01","guid":{"rendered":"http:\/\/wccass.com\/?p=523"},"modified":"2019-12-21T13:10:01","modified_gmt":"2019-12-21T05:10:01","slug":"angular%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0-%e7%9c%8b%e5%ae%8c%e8%bf%99%e4%b8%aa%e8%bf%98%e6%8c%82%e7%a7%91%e7%ae%97%e6%88%91%e8%be%93","status":"publish","type":"post","link":"https:\/\/blog.tongyunli.top\/?p=523","title":{"rendered":"Angular\u5b66\u4e60\u7b14\u8bb0\uff082019-12-26\u66f4\u65b0\uff09"},"content":{"rendered":"\n<p>\u9605\u8bfb\u4e4b\u524d\u9700\u8981\u5177\u6709TypeScript\u57fa\u7840\u77e5\u8bc6<a href=\"http:\/\/wccass.com\/?p=524\">TypeScript\u57fa\u7840\u603b\u7ed3<\/a> \u5982\u679c\u60a8\u7ee7\u7eed\u9605\u8bfb \u6211\u5c06\u9ed8\u8ba4\u4e3a\u60a8\u5df2\u5177\u6709\u76f8\u5173\u57fa\u7840\u77e5\u8bc6<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"># <strong>\u642d\u5efa\u73af\u5883<\/strong><\/h3>\n\n\n\n<h2 class=\"wp-block-heading\">\u5b89\u88c5nodejs<\/h2>\n\n\n\n<p>\u4f7f\u7528npm\u547d\u4ee4\u5b89\u88c5angular<br><code>npm install \u2013g @angular\/cli<\/code><br>\u67e5\u770b\u5b89\u88c5\u7ed3\u679c<br><code>ng v<\/code>\uff08\u67e5\u770b\u7248\u672c\u53f7 \u662f\u5426\u5b89\u88c5\u6210\u529f)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u5b89\u88c5 TypeScript<\/h2>\n\n\n\n<p>(\u56e0\u4e3aangular\u57fa\u4e8ets\u5f00\u53d1\u9700\u8981ts\u505a\u7f16\u8bd1)<br><code>npm install -g typescript<\/code><br>tsc -v (\u67e5\u770b\u7248\u672c\u53f7 \u662f\u5426\u5b89\u88c5\u6210\u529f)<br>ts\u57fa\u7840\u81ea\u5df1\u770b\u53bb \u7b49\u6709\u7a7a\u5199\u4e00\u7bc7\u57fa\u7840\u603b\u7ed3<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u65b0\u5efaangular\u9879\u76ee<\/h2>\n\n\n\n<p class=\"has-background has-light-green-cyan-background-color\"><code>ng new \u9879\u76ee\u540d<\/code><br>\u7b49\u7740\u5427 \u7f51\u7edc\u6162\u6b7b\u4e86<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u8fd0\u884c\u9879\u76ee<\/h2>\n\n\n\n<p class=\"has-background has-light-green-cyan-background-color\">ng serve \u7aef\u53e3\u9ed8\u8ba4\u662f:4200<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u9879\u76ee\u76ee\u5f55\u89e3\u91ca<\/h2>\n\n\n\n<table class=\"wp-block-table has-subtle-pale-pink-background-color has-background\"><tbody><tr><td>\n  <strong>&nbsp;\u65b9\u6cd5\u540d\u79f0<\/strong>\n  <\/td><td>\n  <strong>\u8bf4\u660e<\/strong>\n  <\/td><\/tr><tr><td>\n  <strong>e2e<\/strong>\n  <\/td><td>\n  <strong>\u7aef\u5230\u7aef\u7684\u6d4b\u8bd5\u76ee\u5f55\uff0c\u7528\u6765\u505a\u81ea\u52a8\u6d4b\u8bd5\u7684<\/strong>\n  <\/td><\/tr><tr><td>\n  <strong>node_modules<\/strong>\n  <\/td><td>\n  <strong>\u7b2c\u4e09\u65b9\u4f9d\u8d56\u5305\u7684\u5b58\u653e\u76ee\u5f55<\/strong>\n  <\/td><\/tr><tr><td>\n  <strong>src<\/strong>\n  <\/td><td>\n  <strong>\u5b58\u653e\u6e90\u4ee3\u7801\u6587\u4ef6\uff0c\u6211\u4eec\u7684\u5f00\u53d1\u8fc7\u7a0b\u4e3b\u8981\u5728\u6b64\u76ee\u5f55\u64cd\u4f5c<\/strong>\n  <\/td><\/tr><tr><td>\n  <strong>.<\/strong><strong>editorconfig.json<\/strong>\n  <\/td><td>\n  <strong>\u7f16\u8f91\u5668\u914d\u7f6e\u6587\u4ef6<\/strong>\n  <\/td><\/tr><tr><td>\n  <strong>.<\/strong><strong>gitignore<\/strong>\n  <\/td><td>\n  <strong>git<\/strong><strong>\u7684\u914d\u7f6e\u6587\u4ef6<\/strong>\n  <\/td><\/tr><tr><td>\n  <strong>angular.json<\/strong>\n  <\/td><td>\n  <strong>angular<\/strong><strong>\u7684\u914d\u7f6e\u6587\u4ef6<\/strong>\n  <\/td><\/tr><tr><td>\n  <strong>browserslist<\/strong>\n  <\/td><td>\n  <strong>\u6d4f\u89c8\u5668\u5217\u8868<\/strong>\n  <\/td><\/tr><tr><td>\n  <strong>karma.conf.js<\/strong>\n  <\/td><td>\n  <strong>karma<\/strong><strong>\u5355\u5143\u6d4b\u8bd5\u914d\u7f6e\u6587\u4ef6<\/strong>\n  <\/td><\/tr><tr><td>\n  <strong>package.json<\/strong>\n  <\/td><td>\n  <strong>npm<\/strong><strong>\u7684\u914d\u7f6e\u6587\u4ef6<\/strong>\n  <\/td><\/tr><tr><td>\n  <strong>tsconfig.json<\/strong>\n  <\/td><td>\n  <strong>TypeScript<\/strong><strong>\u7f16\u8bd1\u5668\u7684\u914d\u7f6e\u6587\u4ef6<\/strong>\n  <\/td><\/tr><tr><td>\n  <strong>tslint.json<\/strong>\n  <\/td><td>   <strong>\u914d\u7f6eTypeScript\u4ee3\u7801\u8d28\u91cf\u68c0\u67e5\u7684\u89c4\u5219<\/strong>   <br><\/td><\/tr><\/tbody><\/table>\n\n\n\n<figure class=\"wp-block-image\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/wccass.com\/wp-content\/uploads\/2019\/12\/image-1.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/wccass.com\/wp-content\/uploads\/2019\/12\/image-1.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-539\"\/><\/div><\/figure>\n\n\n\n<p><strong>src\u76ee\u5f55\u662f\u9879\u76ee\u7684\u6838\u5fc3\u76ee\u5f55<\/strong><\/p>\n\n\n\n<table class=\"wp-block-table has-subtle-pale-pink-background-color has-background\"><tbody><tr><td>\n  <strong>&nbsp;\u65b9\u6cd5\u540d\u79f0<\/strong>\n  <\/td><td>\n  <strong>\u8bf4\u660e<\/strong>\n  <\/td><\/tr><tr><td>\n  <strong>app<\/strong>\n  <\/td><td>\n  <strong>App<\/strong><strong>\u76ee\u5f55\u5305\u542b\u5e94\u7528\u7a0b\u5e8f\u7684\u7ec4\u4ef6\u548c\u6a21\u5757\uff0c\u5728\u5f00\u53d1\u4e2d\u6240\u6709\u7684\u7f16\u7801\u90fd\u5728\u8be5\u76ee\u5f55<\/strong>\n  <\/td><\/tr><tr><td>\n  <strong>assets<\/strong>\n  <\/td><td>\n  <strong>Assets<\/strong><strong>\u76ee\u5f55\u7528\u4e8e\u5b58\u653e\u9759\u6001\u8d44\u6e90\u6587\u4ef6\uff0c\u6bd4\u5982\uff1a\u89c6\u9891<\/strong><strong> <\/strong><strong>\u3001\u56fe\u7247\u3001<\/strong><strong>css<\/strong><strong>\u3001<\/strong><strong>js<\/strong><strong>\u7b49<\/strong>\n  <\/td><\/tr><tr><td>\n  <strong>environments<\/strong>\n  <\/td><td>\n  <strong>\u4e3b\u8981\u7528\u4e8e\u73af\u5883\u914d\u7f6e<\/strong>\n  <\/td><\/tr><tr><td>\n  <strong>index.html<\/strong>\n  <\/td><td>\n  <strong>\u6574\u4e2a\u7f51\u7ad9\u7684\u9ed8\u8ba4\u9875\u9762\uff0c<\/strong>\n  <\/td><\/tr><tr><td>\n  <strong>main.ts<\/strong>\n  <\/td><td>\n  <strong>\u6574\u4e2a\u9879\u76ee\u7684\u5165\u53e3\u70b9\uff0c<\/strong><strong>Angular<\/strong><strong>\u901a\u8fc7\u6b64\u6587\u4ef6\u542f\u52a8\u9879\u76ee<\/strong>\n  <\/td><\/tr><tr><td>\n  <strong>polyfills.ts<\/strong>\n  <\/td><td>\n  <strong>\u7528\u6765\u5bfc\u5165\u4e00\u4e9b\u5fc5\u8981\u7684\u5e93\uff0c\u4f7f\u5176\u80fd\u591f\u5728\u8001\u7248\u672c\u4e0b\u8fd0\u884c<\/strong>\n  <\/td><\/tr><tr><td>\n  <strong>styles.css<\/strong>\n  <\/td><td>\n  <strong>\u5168\u5c40\u6837\u5f0f\u6587\u4ef6<\/strong>\n  <\/td><\/tr><tr><td>\n  <strong>test.ts<\/strong>\n  <\/td><td>\n  <strong>\u5355\u5143\u6d4b\u8bd5\u7684\u5165\u53e3\u6587\u4ef6<\/strong>\n  <\/td><\/tr><\/tbody><\/table>\n\n\n\n<figure class=\"wp-block-image\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/wccass.com\/wp-content\/uploads\/2019\/12\/image.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/wccass.com\/wp-content\/uploads\/2019\/12\/image.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-538\"\/><\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u6a21\u5757<\/h2>\n\n\n\n<p>ps:<\/p>\n\n\n\n<p><strong>\u6bcf\u4e2a\u5e94\u7528\u4e2d\u81f3\u5c11\u5305\u542b\u4e00\u4e2a\u6a21\u5757\uff0c\u5373\u6839\u6a21\u5757\u3002<\/strong><\/p>\n\n\n\n<p><strong>\u521b\u5efa\u9879\u76ee\u65f6\u81ea\u52a8\u521b\u5efa\u6839\u6a21\u5757(app.module.ts)<\/strong><\/p>\n\n\n\n<p><strong>\u521b\u5efa\u9879\u76ee\u65f6\u81ea\u52a8\u521b\u5efa\u8def\u7531\u6a21\u5757(app-routing.module.ts)<\/strong><\/p>\n\n\n\n<p><strong>Angular<\/strong><strong>\u6a21\u5757\u662f\u5e26\u6709<\/strong><strong>@<\/strong><strong>NgModule<\/strong><strong>(<\/strong><strong>\u88c5\u9970\u5668<\/strong><strong>)<\/strong><strong>\u7684<\/strong><strong>\u7c7b<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"> \u7ec4\u4ef6 <\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u65b0\u5efa\u7ec4\u4ef6<\/h3>\n\n\n\n<p class=\"has-background has-light-green-cyan-background-color\"><code>ng g component \u6a21\u5757\u540d<\/code><\/p>\n\n\n\n<p class=\"has-background has-light-green-cyan-background-color\"><strong>\u521b\u5efa\u7ec4\u4ef6\u4e4b\u524d\uff0c\u8981\u505c\u6b62<\/strong><strong>Angular<\/strong><strong>\u9879\u76ee\u7684\u8fd0\u884c\uff1a\u5feb\u6377\u952e\uff1a<\/strong><strong>ctrl+c<\/strong><strong>\uff0c<\/strong><strong>y<\/strong><\/p>\n\n\n\n<p class=\"has-background has-luminous-vivid-amber-background-color\"><strong>\u4e00\u4e2a\u7ec4\u4ef6\u5305\u542b\uff1a<\/strong><strong>1.<\/strong><strong> <\/strong><strong>html<\/strong><strong>\u6587\u4ef6\uff1a\u9875\u9762\u5143\u7d20\uff08\u6bd4\u5982\uff1a<\/strong><strong>div<\/strong><strong>\uff09<\/strong><\/p>\n\n\n\n<p class=\"has-background has-luminous-vivid-amber-background-color\"><strong>&nbsp;<\/strong><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.&nbsp; <\/strong><strong>ts<\/strong><strong>\u6587\u4ef6\uff1a\u5b9a\u4e49<\/strong><strong>ts<\/strong><strong>\u4ee3\u7801<\/strong><\/p>\n\n\n\n<p class=\"has-background has-luminous-vivid-amber-background-color\"><strong>&nbsp;<\/strong><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.&nbsp; <\/strong><strong>css<\/strong><strong>\u6587\u4ef6\uff1a\u7ec4\u4ef6\u7684\u6837\u5f0f\u4ee3\u7801<\/strong><\/p>\n\n\n\n<p class=\"has-background has-luminous-vivid-amber-background-color\"><strong>&nbsp;<\/strong><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4.&nbsp; <\/strong><strong>spec.ts<\/strong><strong>\u6587\u4ef6\uff1a\u6d4b\u8bd5\u6587\u4ef6<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u5f15\u7528\u7ec4\u4ef6<\/h3>\n\n\n\n<p class=\"has-background has-light-green-cyan-background-color\"><code>&lt;app-\u7ec4\u4ef6\u540d&gt;&lt;\/app-<\/code> \u7ec4\u4ef6<code>\u540d&gt;<\/code><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u53d8\u91cf\u58f0\u660e<\/h2>\n\n\n\n<p class=\"has-background has-light-green-cyan-background-color\">\u58f0\u660e\u53d8\u91cf<br>\u53d8\u91cf\u540d\uff1a\u7a7a\u683c \u7c7b\u578b\uff1b<br>\u76f4\u63a5\u521d\u59cb\u5316\u53d8\u91cf\uff08\u4e0d\u9700\u8981\u5b9a\u4e49\u7c7b\u578b \u8212\u670d\uff01\uff09<br><code>aa\u7a7a\u683c=\u7a7a\u683c1\uff1b<br>\naa\u7a7a\u683c=\u7a7a\u683ctrue\uff1b<br>\naa\u7a7a\u683c=\u7a7a\u683c\u2018\u6211\u662f\u8c01\uff1f\u2019\uff1b<\/code><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u6dfb\u52a0bootstrap<\/strong><\/h2>\n\n\n\n<p><strong>\u5c06<\/strong><strong>bootstrap<\/strong><strong>\u5305\u590d\u5236\u5230<\/strong><strong>assets<\/strong><strong>\u6587\u4ef6\u5939<\/strong><\/p>\n\n\n\n<p><strong>\u5728\u9ed8\u8ba4\u9875\u9762index.html\u4e2d\uff0c\u5bfc\u5165\u5916\u90e8Bootstrap\uff0c\u6240\u6709\u7ec4\u4ef6\u90fd\u751f\u6548<\/strong>(\u4e00\u6b21\u5f15\u5165\u5168\u5c40\u53ef\u7528(niupi))<\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;link rel=\"stylesheet\" href=\".\/assets\/bootstrap-3.3.7-dist\/css\/bootstrap.min.css\">\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u53d8\u91cf<\/strong><\/h2>\n\n\n\n<p class=\"has-background has-light-green-cyan-background-color\">\u53d8\u91cf\u540d:[\u7a7a\u683c]\u7c7b\u578b     <strong>\u5192\u53f7\u540e\u8981\u6709\u7a7a\u683c<\/strong> <\/p>\n\n\n\n<p><strong>&nbsp;aa: boolean;<\/strong><\/p>\n\n\n\n<p class=\"has-background has-luminous-vivid-amber-background-color\"><strong>aa = &#8216;hello&#8217;<\/strong>  \/\/\u76f4\u63a5\u8d4b\u503c! \u4e0d\u9700\u8981\u5b9a\u4e49\u7c7b\u578b niubi    \u5b57\u7b26\u4e32\u63a8\u8350\u4f7f\u7528\u5355\u5f15\u53f7<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u6570\u636e\u7ed1\u5b9a\uff08\u76f4\u63a5\u53d6\u503c \u5439\u7206\uff01\uff09<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"> <strong>\u6570\u636e\u6e90&gt;&gt;\u89c6\u56fe<\/strong> <\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">1.<strong>\u63d2\u503c\u8868\u8fbe\u5f0f<\/strong>\u7ed1\u5b9a<\/h4>\n\n\n\n<p>\u5728<strong>***.component.ts\u4e2d<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>&nbsp;aa = false;<\/strong><\/pre>\n\n\n\n<p><strong>\u5728<\/strong><strong>***<\/strong><strong>.component.<\/strong><strong>html<\/strong><strong>\u7ed1\u5b9a<\/strong><\/p>\n\n\n\n<p class=\"has-background has-light-green-cyan-background-color\"><code>&lt;p&gt;{{\u53d8\u91cf\u540d}}&lt;\/p&gt;<\/code>  {{aa}}<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"> 2.<strong>\u5c5e\u6027\u7ed1\u5b9a(\u5c06ts\u7684\u6570\u636e\u7ed1\u5b9a\u5230html\u6807\u7b7e\u7684\u5c5e\u6027\u4e0a)<\/strong> <\/h4>\n\n\n\n<p><strong>\u5728<\/strong><strong>***.<\/strong><strong>component.<\/strong><strong>ts<\/strong><strong>\u4e2d<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">bb  =  '.\/assets\/img\/logo.png';<\/pre>\n\n\n\n<p><strong>\u5728<\/strong><strong>***<\/strong><strong>.component.<\/strong><strong>html<\/strong><strong>\u7ed1\u5b9a<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>&lt;<\/strong><strong>img<\/strong><strong> <\/strong><strong>[<\/strong><strong>src<\/strong><strong>]<\/strong><strong>=\"<\/strong><strong>bb<\/strong><strong>\" \/&gt;&nbsp;&nbsp; &lt; --&nbsp;&nbsp; <\/strong><strong>\u7ed1\u5b9a\u5c5e\u6027<\/strong><strong> --&gt;<\/strong><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>&lt;input&nbsp; type=\u201ctext\u201d&nbsp; [value]=\"bb\" \/&gt; &lt;--&nbsp;&nbsp; \u7ed1\u5b9a\u5c5e\u6027 --&gt;<\/strong><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"> 3.<strong>style\u6837\u5f0f\u7ed1\u5b9a<\/strong> <\/h4>\n\n\n\n<p><strong>\u5728<\/strong><strong>***.<\/strong><strong>component.<\/strong><strong>ts<\/strong><strong>\u4e2d<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>cc&nbsp; =&nbsp; 'red';<\/strong><\/pre>\n\n\n\n<p><strong>\u5728<\/strong><strong>***<\/strong><strong>.component.<\/strong><strong>html<\/strong><strong>\u7ed1\u5b9a<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>&nbsp;&lt;input type=\"text\" [style.background-color]=\"cc\" \/&gt;<\/strong><\/pre>\n\n\n\n<p>4. <strong>class\u6837\u5f0f\u7c7b\u7ed1\u5b9a<\/strong> <\/p>\n\n\n\n<p><strong>\u5728***.component.css\u4e2d<\/strong> <\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">  <strong>.dd {<\/strong>  <strong>&nbsp;background-color: skyblue;<\/strong>  <strong>&nbsp;color:orange;<\/strong>  <strong>}<\/strong> <\/pre>\n\n\n\n<p><strong>\u5728***.component.ts\u4e2d<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>change = true;<\/strong><\/pre>\n\n\n\n<p><strong>\u5728***.component.html\u7ed1\u5b9a<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>&nbsp;&lt;input type=\"text\" [class.dd]= \" change\" \/&gt;<\/strong><\/pre>\n\n\n\n<p> <strong>\u89c6\u56fe&gt;&gt;\u6570\u636e\u6e90<\/strong> <\/p>\n\n\n\n<p class=\"has-background has-luminous-vivid-amber-background-color\">\/\/\u901a\u5e38\u7528\u4e8e\u7ed1\u5b9a\u4e8b\u4ef6\uff0c\u6807\u7b7e\u4e8b\u4ef6\u7ed1\u5b9ats\u4e2d\u7684\u65b9\u6cd5<\/p>\n\n\n\n<p><strong>\u5728<\/strong><strong>***.<\/strong><strong>component.<\/strong><strong>ts<\/strong><strong>\u6587\u4ef6\u5b9a\u4e49<\/strong><strong>\u65b9\u6cd5<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">  <strong>cc () {<\/strong>  \n<strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(\u201c\u7ed1\u5b9a\u4e8b\u4ef6\u201d);<\/strong>  <strong>&nbsp;&nbsp;&nbsp; }<\/strong> <\/pre>\n\n\n\n<p class=\"has-background has-luminous-vivid-amber-background-color\"><strong>\u5728***.component.html\u6587\u4ef6\u4e2d\uff0c\u7ed9\u6309\u94ae\u7684\u5355\u51fb\u4e8b\u4ef6\u7ed1\u5b9acc\u65b9\u6cd5<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong> \/\/(\u4e8b\u4ef6\u540d\u79f0)=\u201c\u65b9\u6cd5\u540d\uff08\uff09\u201d<\/strong>\n <strong>&lt;input type=\u201cbutton\u201d value=\u201c\u70b9\u6211\u8bd5\u8bd5\u201d&nbsp; (click)=\u201ccc()\u201d&gt;<\/strong> <\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u7ba1\u9053\u64cd\u4f5c\u7b26<\/strong><\/h2>\n\n\n\n<p><strong>\u7ba1\u9053\u662f\u4e00\u4e2a\u63a5\u6536\u8f93\u5165\u503c\u5e76\u8fd4\u56de\u8f6c\u6362\u7ed3\u679c\u7684\u51fd\u6570\uff0c\u5177\u6709\u591a\u79cd\u8f6c\u6362\u5f62\u5f0f\uff0c\u6bd4\u5982\uff1a\u767e\u5206\u6570\u8f6c\u6362\u3001\u6570\u5b57\u8f6c\u4e3a\u91d1\u989d\u3001\u65e5\u671f\u683c\u5f0f\u7b49\u3002<\/strong><\/p>\n\n\n\n<p><strong>\u5728<\/strong><strong>***.<\/strong><strong>component.ts<\/strong><strong>\u6587\u4ef6\u5b9a\u4e49\u65e5\u671f<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>per = 0.2;<\/strong>\n <strong>today =&nbsp; Date.now();<\/strong>\n <strong>salary = 200;<\/strong> <\/pre>\n\n\n\n<p><strong>\u5728<\/strong><strong>***.<\/strong><strong>component.html<\/strong><strong>\u5728\u4f7f\u7528\u7ba1\u9053\u64cd\u4f5c\u7b26<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>\/\/{{\u53d8\u91cf\u540d | \u7ba1\u9053\u64cd\u4f5c\u7b26\u540d }}<\/strong>\n <strong>{{per |percent}}&nbsp; \/\/ \u767e\u5206\u6bd4<\/strong>\n <strong>{{ today | date: \u2018yyyy-MM-dd hh:mm:ss\u2019}} \/\/ date\uff1a\u8868\u793a\u65e5\u671f<\/strong>\n <strong>{{salary | currency: \u2018CNY\u2019:\u2018symbol-narrow\u2019}} \/\/curreny:\u8868\u793a\u8d27\u5e01<\/strong>\n <strong>\/\/CNY:\u8868\u793a\u4eba\u6c11\u5e01 <\/strong>\n<strong> \/\/symbol-narrow:\u8868\u793a\u7a84\u7b26\u53f7,\u53bb\u6389CN<\/strong> <\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u5b89\u5168\u5bfc\u822a\u64cd\u4f5c\u7b26<\/strong><\/h2>\n\n\n\n<p class=\"has-background has-vivid-green-cyan-background-color\"><strong>\u5b89\u5168\u5bfc\u822a\u64cd\u4f5c\u7b26\u7684\u4e3b\u8981\u4f5c\u7528\u662f\u7528\u6765<\/strong><strong>\u4fdd\u62a4<\/strong><strong>\u51fa\u73b0\u5728<\/strong><strong>\u5c5e\u6027\u8def\u5f84\u4e2d\u7684<\/strong><strong>null<\/strong><strong>\u548c<\/strong><strong>undefined<\/strong><strong>\u503c<\/strong><strong>\uff0c\u5f53\u8868\u8fbe\u5f0f\u9047\u5230\u7a7a\u503c\u65f6\u8df3\u8fc7\uff0c\u540e\u9762\u7684\u4ee3\u7801\u53ef\u4ee5<\/strong><strong>\u6b63\u5e38\u6267\u884c<\/strong><strong>\u3002<\/strong><\/p>\n\n\n\n<p><strong>\u5728<\/strong><strong>***.<\/strong><strong>component.ts<\/strong><strong>\u4e2d<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>hh = 20;<\/strong><\/pre>\n\n\n\n<p><strong>\u5728***.component.html\u6587\u4ef6\u4e2d\u83b7\u53d6\u4e0d\u5b58\u5728\u7684\u5bf9\u8c61\u7684\u5c5e\u6027<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>&lt;!-- {{p.name}},\u629b\u51fa\u5f02\u5e38\uff0c\u6574\u4e2a\u9875\u9762\u505c\u6b62\u6267\u884c\uff0c\u9875\u9762\u4e0d\u663e\u793a&nbsp; -- &gt;<\/strong>\n <strong>{{p?.name}}<\/strong>\n <strong>\/\/\u7a0b\u5e8f\u4e0d\u4f1a\u4e2d\u65ad\uff0c\u4e0b\u9762\u4ee3\u7801\u53ef\u4ee5\u6b63\u5e38\u6267\u884c<\/strong>\n <strong>{{hh}}<\/strong> <\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>*ngFor\u6307\u4ee4<\/strong><\/h2>\n\n\n\n<p class=\"has-background has-vivid-cyan-blue-background-color\"><strong>n<\/strong><strong>gFor<\/strong><strong>\u7684\u4e3b\u8981\u4f5c\u7528\u662f\u53ef\u4ee5\u5faa\u73af\u6570\u7ec4\uff0c\u7c7b\u4f3c\u4e8e<\/strong><strong>for<\/strong><strong>\u5faa\u73af<\/strong><strong>,<\/strong><strong>\u53ef\u4ee5\u5c06<\/strong><strong>\u6570\u7ec4<\/strong><strong>\u4e2d\u7684<\/strong><strong>\u6570\u636e<\/strong><strong>\uff0c<\/strong><strong>\u5faa\u73af\u663e\u793a\u5230\u9875\u9762\u4e0a<\/strong><\/p>\n\n\n\n<p><strong>\u5728<\/strong><strong>***.<\/strong><strong>component.ts<\/strong><strong>\u6587\u4ef6\u5b9a\u4e49\u6570\u7ec4<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>nameArray: string[ ] = [ 'zhangsan' , 'lisi' , 'wangwu' ];<\/strong> <\/pre>\n\n\n\n<p><strong>\u5728<\/strong><strong>***.component.html<\/strong><strong>\u4e2d\u4f7f\u7528<\/strong><strong>ngFor<\/strong><strong>\u5faa\u73af\u663e\u793a\u6570\u7ec4\u4e2d\u7684\u503c<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>&lt;ul&gt;<\/strong>\n <strong>&nbsp;&nbsp; &lt;!\u2013 \u6570\u7ec4\u4e2d\u6709\u51e0\u4e2a\u5143\u7d20\uff0c\u5c31\u5faa\u73af\u51e0\u6b21\uff0c\u6bcf\u6b21\u5faa\u73af\u90fd\u751f\u6210\u4e00\u4e2a&lt;li&gt;--&gt;<\/strong>\n <strong>&nbsp;&nbsp; &lt;!\u2013 let&nbsp; \u53d8\u91cf\u540d&nbsp; of&nbsp; \u6570\u7ec4\u540d --&gt;<\/strong>\n <strong>&nbsp;&nbsp; &lt;!\u2013 \u6bcf\u5faa\u73af\u4e00\u6b21\uff0c\u4ece\u6570\u7ec4\u4e2d\u53d6\u51fa\u4e00\u4e2a\u5143\u7d20\uff0c\u5b58\u5165\u53d8\u91cf\u4e2d--&gt;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp; &lt;li *ngFor=\"let&nbsp; name of nameArray\"&gt;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!\u2013 \u7ed1\u5b9a\u6bcf\u6b21\u5faa\u73af\u5230\u7684\u53d8\u91cf\u503c--&gt;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {{name}}<\/strong>\n <strong>&nbsp;&nbsp;&nbsp; &lt;\/li&gt;<\/strong>\n <strong>&lt;\/ul&gt;<\/strong> <\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>*ngFor\u6307\u4ee4\u83b7\u53d6\u7d22\u5f15<\/strong><\/h3>\n\n\n\n<p><strong>\u4f7f\u7528<\/strong><strong>index<\/strong><strong>\u83b7\u53d6\u6570\u7ec4\u7684<\/strong><strong>\u7d22\u5f15\u503c<\/strong><\/p>\n\n\n\n<p><strong>\u5728***.component.ts\u6587\u4ef6\u5b9a\u4e49\u65e5\u671f<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>nameArray: string[ ] = [ 'zhangsan' , 'lisi' , 'wangwu' ];<\/strong> <\/pre>\n\n\n\n<p><strong>\u5728<\/strong><strong>***.component.html<\/strong><strong>\u83b7\u53d6\u7d22\u5f15\u503c<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>&lt;ul&gt;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp; &lt;!--&nbsp; index\u83b7\u53d6\u6570\u7ec4\u7684\u7d22\u5f15\u503c&nbsp; --&gt;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp; &lt;!--&nbsp; let \u53d8\u91cf\u540d&nbsp; =&nbsp; index&nbsp; --&gt;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp; &lt;li *ngFor=\"let&nbsp; name of nameArray;let i = index\"&gt;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {{i}}\uff1a {{name}}<\/strong>\n <strong>&nbsp;&nbsp;&nbsp; &lt;\/li&gt;<\/strong>\n <strong>&lt;\/ul&gt;<\/strong> <\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>*ngIf\u6307\u4ee4<\/strong><\/h2>\n\n\n\n<p><strong>ngIf<\/strong><strong>\u7684\u4e3b\u8981\u4f5c\u7528\u662f\u6761\u4ef6\u5224\u65ad<\/strong><\/p>\n\n\n\n<p class=\"has-background has-pale-cyan-blue-background-color\"><strong>*<\/strong><strong>ngIf<\/strong><strong>\u7684\u7684\u8bed\u6cd5\u683c\u5f0f<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>&nbsp;&lt;span *ngIf=\u201c\u6761\u4ef6\u8868\u8fbe\u5f0f\" &gt;\u2026&lt;\/span&gt;<\/strong> <\/pre>\n\n\n\n<p class=\"has-background has-pale-cyan-blue-background-color\"><strong>\u6761\u4ef6\u8868\u8fbe\u5f0f\u8fd4\u56de<\/strong><strong>true<\/strong><strong>\uff0c\u663e\u793a\u5143\u7d20<\/strong><\/p>\n\n\n\n<p class=\"has-background has-pale-cyan-blue-background-color\"><strong>\u6761\u4ef6\u8868\u8fbe\u5f0f\u8fd4\u56de<\/strong><strong>false<\/strong><strong>\uff0c\u4e0d\u663e\u793a\u5143\u7d20<\/strong><\/p>\n\n\n\n<p><strong>\u5728***.component.ts\u6587\u4ef6\u5b9a\u4e49\u6570\u7ec4<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>nameArray: string[ ] = [ 'zhangsan' , 'lisi' , 'wangwu' ];<\/strong> <\/pre>\n\n\n\n<p><strong>\u5728<\/strong><strong>***.<\/strong><strong>component.html<\/strong><strong>\u5728\u4f7f\u7528<\/strong><strong>*<\/strong><strong>ngIf<\/strong><strong>\u6307\u4ee4<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>&lt;ul &gt;<\/strong>\n <strong>&nbsp;&nbsp; &lt;li *ngFor=\"let name of aa;let i = index\"&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;span *ngIf=\"i%2==0\" style=\"background-color: skyblue;\"&gt;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {{name}}<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;\/span&gt;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;span *ngIf=\"i%2!=0\" style=\"background-color:orange;\"&gt;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {{name}}<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;\/span&gt;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp; &lt;\/li&gt;<\/strong>\n <strong>&lt;\/ul&gt;<\/strong> <\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>ngSwitch\u6307\u4ee4<\/strong><\/h2>\n\n\n\n<p>\u8bed\u6cd5\u683c\u5f0f:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>&lt;span&nbsp;[ngSwitch]=\u201c\u8868\u8fbe\u5f0f\"&gt;&nbsp;&nbsp;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;span &nbsp;*ngSwitchCase=\u201c\u503c1\"&gt;\u2026&lt;\/span&gt;&nbsp;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;span &nbsp;*ngSwitchCase=\u201c\u503c2\"&gt;\u2026&lt;\/span&gt;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;span &nbsp;*ngSwitchCase=\u201c\u503c3\"&gt;\u2026&lt;\/span&gt;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \u2026.<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;span &nbsp;*ngSwitchDefault&gt;\u2026&lt;\/span&gt;<\/strong>\n <strong>&lt;\/span&gt;<\/strong> <\/pre>\n\n\n\n<p class=\"has-background has-pale-cyan-blue-background-color\"><strong>1.<\/strong><strong>\u663e\u793a\u4e0e\u8868\u8fbe\u5f0f\u5339\u914d\u7684\u5143\u7d20<\/strong><\/p>\n\n\n\n<p class=\"has-background has-pale-cyan-blue-background-color\"><strong>2.<\/strong><strong>\u5982\u679c\u6ca1\u6709\u5339\u914d\u7684\u503c\u663e\u793a\u9ed8\u8ba4\u9879<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>&lt;span&nbsp;[ngSwitch]=\"bb\"&gt;&nbsp;&nbsp;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;span &nbsp;*ngSwitchCase=\"1\"&gt;\u5df2\u652f\u4ed8&lt;\/span&gt;&nbsp;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;span &nbsp;*ngSwitchCase=\"2\"&gt;\u5df2\u53d1\u8d27&lt;\/span&gt;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;span &nbsp;*ngSwitchCase=\"3\"&gt;\u5df2\u6536\u8d27&lt;\/span&gt;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;span &nbsp;*ngSwitchDefault&gt;\u4e0d\u6b63\u5e38&lt;\/span&gt;<\/strong>\n <strong>&lt;\/span&gt;<\/strong> <\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"> <strong>\u53cc\u5411\u6570\u636e\u7ed1\u5b9a<\/strong> <\/h2>\n\n\n\n<p><strong>\u6570\u636e\u6e90<\/strong><strong>(<\/strong><strong>ts<\/strong><strong>)<\/strong><strong>\u7ed1\u5b9a\u81f3\u89c6\u56fe\uff08<\/strong><strong>html<\/strong><strong>\uff09<\/strong><\/p>\n\n\n\n<p><strong>\u89c6\u56fe\uff08html\uff09\u7ed1\u5b9a\u81f3\u6570\u636e\u6e90(ts)<\/strong><\/p>\n\n\n\n<p class=\"has-background has-luminous-vivid-amber-background-color\"><strong>\u53cc\u5411\u6570\u636e\u7ed1\u5b9a\u4e4b\u524d\uff0c\u9700\u8981\u5728\u6839\u6a21\u5757<\/strong><strong>app.modules.ts<\/strong><strong>\u4e2d\u5f15\u5165<\/strong><strong>FormsModule<\/strong><strong>\u8868\u5355\u6a21\u5757<\/strong><strong>,<\/strong><strong>\u6240\u6709\u7684\u7ec4\u4ef6\u90fd\u751f\u6548<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>\/\/ \u5bfc\u5165\uff08\u5f15\u5165\uff09\u8868\u5355\u6a21\u5757<\/strong>\n <strong>import { FormsModule } from '@angular\/forms';<\/strong>\n <strong>\u2026..<\/strong>\n <strong>@NgModule({<\/strong>\n <strong>\u2026\u2026<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp; imports: [<\/strong>\n <strong>&nbsp;&nbsp;&nbsp; BrowserModule,<\/strong>\n <strong>&nbsp;&nbsp;&nbsp; AppRoutingModule,<\/strong>\n <strong>&nbsp;&nbsp;&nbsp; \/\/ \u5728\u6a21\u5757\u7684\u88c5\u9970\u5668\u4e2d\u5bfc\u5165\u8868\u5355\u6a21\u5757<\/strong>\n <strong>&nbsp;&nbsp;&nbsp; FormsModule<\/strong>\n <strong>&nbsp; ]<\/strong> <\/pre>\n\n\n\n<p><strong>\u5728***.component.ts\u6587\u4ef6\u4e2d<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>num1 = 2;<\/strong>\n <strong>num2 = 3;<\/strong>\n <strong>dd() {<\/strong>\n <strong>&nbsp;&nbsp;&nbsp; alert(&nbsp; this.num1 + this.num2 );<\/strong>\n <strong>}<\/strong> <\/pre>\n\n\n\n<p><strong>\u5728<\/strong><strong>***.component.html<\/strong><strong>\u6587\u4ef6\u4e2d<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>&lt;input type=\"text\"&nbsp; [(ngModel)]=\"num1\" \/&gt;&nbsp; &lt;br \/&gt;<\/strong>\n <strong>&lt;input type=\"text\"&nbsp; [(ngModel)]=\"num2\" \/&gt;&nbsp; &lt;br \/&gt;<\/strong>\n <strong>&lt;input type=\"button\" value=\"\u6c42\u548c\" (click)=\"dd()\" \/&gt;<\/strong> <\/pre>\n\n\n\n<p class=\"has-background has-light-green-cyan-background-color\"><strong>Number<\/strong><strong>\uff08<\/strong><strong>\u2019123\u2019<\/strong><strong>\uff09\uff1b<\/strong><strong>\/\/<\/strong><strong>\u5c06\u5b57\u7b26\u4e32\u8f6c\u4e3a<\/strong><strong>number<\/strong><strong>\u7c7b\u578b<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Angular\u8868\u5355\u63d0\u4ea4\u6570\u636e<\/strong><\/h2>\n\n\n\n<p><strong>\u6dfb\u52a0<\/strong><strong>ngForm<\/strong><strong>\u6307\u4ee4\uff1a<\/strong><strong>#<\/strong><strong>\u53d8\u91cf\u540d<\/strong><strong>=<\/strong><strong>\n\u201c <\/strong><strong>ngForm<\/strong><strong>\u201d<\/strong><\/p>\n\n\n\n<p><strong>\u7ed1\u5b9a\u63d0\u4ea4\u4e8b\u4ef6\uff1a<\/strong><strong>\uff08<\/strong><strong>ngSubmit<\/strong><strong>\uff09<\/strong><strong>=<\/strong><strong>\u201c\u65b9\u6cd5\u540d<\/strong><strong>(<\/strong><strong>\u53d8\u91cf\u540d<\/strong><strong>.value)<\/strong><strong>\u201d<\/strong><\/p>\n\n\n\n<p><strong>\u8868<\/strong><strong>\u5355\u7ec4\u4ef6\u5fc5\u987b\u8bbe\u7f6e<\/strong><strong>name<\/strong><strong>\u5c5e\u6027\uff0c\u5fc5\u987b\u4f7f\u7528<\/strong><strong>ngModel<\/strong><strong>\u6307\u4ee4<\/strong><\/p>\n\n\n\n<p><strong>\u5fc5\u987b\u4f7f\u7528<\/strong><strong>submit<\/strong><strong>\u63d0\u4ea4\u6309\u94ae<\/strong><\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>&lt;form #f=\"ngForm\" (ngSubmit)=\"ff(f.value)\"&gt;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp; &lt;input type=\"text\"&nbsp; name=\"num1\" ngModel \/&gt;&nbsp; &lt;br \/&gt;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp; &lt;input type=\"text\"&nbsp; name=\"num2\" ngModel \/&gt;&nbsp; &lt;br \/&gt;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp; &lt;input type=\"submit\" value=\"\u63d0\u4ea4\" &gt;<\/strong>\n <strong>&nbsp;&lt;\/form&gt;<\/strong> <\/pre>\n\n\n\n<p><strong>\u5728<\/strong><strong>***.<\/strong><strong>component.ts<\/strong><strong>\u4e2d\uff0c\u6dfb\u52a0\u63d0\u4ea4\u4e8b\u4ef6\u7ed1\u5b9a\u7684\u65b9\u6cd5<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>\/\/\u6dfb\u52a0\u53c2\u6570\u63a5\u6536\u4f20\u8fc7\u6765\u7684\u8868\u5355\u6570\u636e&nbsp;<\/strong>\n <strong>ff(data: any) {<\/strong>\n <strong>&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;alert(Number(data.num1) + Number(data.num2));<\/strong>\n <strong>}<\/strong> <\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u8868\u5355\u9a8c\u8bc1<\/strong><\/h3>\n\n\n\n<table class=\"wp-block-table has-subtle-pale-pink-background-color has-background\"><tbody><tr><td>\n  <strong>\u540d\u79f0<\/strong>\n  <\/td><td>\n  <strong>\u8bf4\u660e<\/strong>\n  <\/td><\/tr><tr><td>\n  <strong>required<\/strong>\n  <\/td><td>\n  <strong>\u8bbe\u7f6e\u8868\u5355\u63a7\u4ef6\u503c\u662f\u975e\u7a7a\u7684<\/strong>\n  <\/td><\/tr><tr><td>\n  <strong>email<\/strong>\n  <\/td><td>\n  <strong>\u8bbe\u7f6e\u8868\u5355\u63a7\u4ef6\u503c\u7684\u683c\u5f0f\u662f\u7535\u5b50\u90ae\u7bb1<\/strong>\n  <\/td><\/tr><tr><td>\n  <strong>minlength<\/strong>\n  <\/td><td>\n  <strong>\u8bbe\u7f6e\u8868\u5355\u63a7\u4ef6\u503c\u7684\u6700\u5c0f\u957f\u5ea6<\/strong>\n  <\/td><\/tr><tr><td>\n  <strong>maxlength<\/strong>\n  <\/td><td>\n  <strong>\u8bbe\u7f6e\u8868\u5355\u63a7\u4ef6\u503c\u7684\u6700\u5927\u957f\u5ea6<\/strong>\n  <\/td><\/tr><tr><td>\n  <strong>pattern<\/strong>\n  <\/td><td>\n  <strong>\u8bbe\u7f6e\u8868\u5355\u63a7\u4ef6\u503c\u5fc5\u987b\u5339\u914d<\/strong><strong>pattern<\/strong><strong>\u5bf9\u5e94\u7684\u6b63\u5219\u8868\u8fbe\u5f0f<\/strong>\n  <\/td><\/tr><\/tbody><\/table>\n\n\n\n<p><strong>\u901a\u8fc7\u4e3a<\/strong><strong>ngModel<\/strong><strong>\u8bbe\u7f6e<\/strong><strong>\u53d8\u91cf\u540d<\/strong><strong>\uff0c\u901a\u8fc7\u53d8\u91cf\u540d\u6765\u67e5\u770b\u8be5\u63a7\u4ef6\u7684<\/strong><strong>\u9a8c\u8bc1\u72b6\u6001<\/strong><strong>\u3002<\/strong><\/p>\n\n\n\n<p class=\"has-background has-light-green-cyan-background-color\"><strong>\u8bbe\u7f6e\u9a8c\u8bc1\u89c4\u5219\uff1a\u975e\u7a7a\n<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>&lt;input type=\"text\" name=\"num1\" ngModel #one=\"ngModel\u201c required &nbsp;\/&gt; <\/strong> <\/pre>\n\n\n\n<p class=\"has-background has-light-green-cyan-background-color\"><strong>\u6bcf\u5f53\u8868\u5355\u63a7\u4ef6\u4e2d\u7684\u503c\u53d1\u751f\u53d8\u5316\u65f6<\/strong><strong>\uff0c<\/strong><strong>Angular\n<\/strong><strong>\u5c31\u4f1a\u8fdb\u884c\u9a8c\u8bc1<\/strong><\/p>\n\n\n\n<p class=\"has-background has-light-green-cyan-background-color\"><strong>\u9a8c\u8bc1\u65e0\u6548\uff1a<\/strong><strong>invalid<\/strong><strong>\u4e3a<\/strong><strong>true<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>&lt;span *ngIf=\u201cone.invalid\" style=\"color:red;\"&gt;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \u4f60\u8f93\u5165\u7684\u503c\u65e0\u6548<\/strong>\n <strong>&nbsp;&nbsp;&nbsp; &lt;\/span&gt;<\/strong> <\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>&lt;input type=\"text\" name=\"num1\" ngModel #two=\"ngModel\" required email minlength=\"6\" maxlength=\"12\" \/&gt;<\/strong>\n <strong>&lt;span *ngIf=\u201ctwo.errors?.required\" style=\"color:red;\"&gt;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \u4e0d\u80fd\u4e3a\u7a7a<\/strong>\n <strong>&lt;\/span&gt;<\/strong>\n <strong>&lt;span *ngIf=\u201ctwo.errors?.minlength\" style=\"color:red;\"&gt;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \u957f\u5ea6\u81f3\u5c116\u4f4d<\/strong>\n <strong>&lt;\/span&gt;<\/strong>\n <strong>&lt;span *ngIf=\u201ctwo.errors?.maxlength\" style=\"color:red;\"&gt;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \u957f\u5ea6\u6700\u591a12\u4f4d<\/strong>\n <strong>&lt;\/span&gt;<\/strong>\n <strong>&lt;span *ngIf=\u201ctwo.errors?.email\" style=\"color:red;\"&gt;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \u90ae\u7bb1\u683c\u5f0f\u4e0d\u6b63\u786e<\/strong>\n <strong>&lt;\/span&gt;<\/strong> <\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u6b63\u5219\u8868\u8fbe\u5f0f\u9a8c\u8bc1<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>&lt;input type=\"text\" name=\"num2\" ngModel #two=\"ngModel\" pattern=\"^[0-9]*$\"\/&gt; <\/strong>\n \n <strong>&lt;span *ngIf=\"two.errors?.pattern\" style=\"color:red;\"&gt;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp; \u4f60\u8f93\u5165\u7684\u6570\u636e\u683c\u5f0f\u4e0d\u6b63\u786e<\/strong>\n <strong>&lt;\/span&gt;<\/strong> <\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u8868\u5355\u6837\u5f0f<\/strong><\/h3>\n\n\n\n<p><strong>\u8868<\/strong><strong>\u5355\u63a7\u4ef6<\/strong><strong>CSS<\/strong><strong>\u7c7b<\/strong><strong>\u540d\u4f1a\u6839\u636e\u63a7\u4ef6\u72b6\u6001\u7684\u53d8\u5316\u800c\u81ea\u52a8\u53d8\u5316<\/strong><\/p>\n\n\n\n<table class=\"wp-block-table has-subtle-pale-pink-background-color has-background\"><tbody><tr><td>\n  <strong>\u540d\u79f0<\/strong>\n  <\/td><td>\n  <strong>\u4e3a<\/strong><strong>true<\/strong><strong>\u65f6\u7684<\/strong><strong>css<\/strong><strong>\u7c7b<\/strong>\n  <\/td><td>\n  <strong>\u4e3a<\/strong><strong>false<\/strong><strong>\u65f6\u7684<\/strong><strong>css<\/strong><strong>\u7c7b<\/strong>\n  <\/td><\/tr><tr><td>\n  <strong>\u63a7\u4ef6\u662f\u5426\u8bbf\u95ee\u8fc7<\/strong>\n  <\/td><td>\n  <strong>ng<\/strong><strong>-touched<\/strong>\n  <\/td><td>\n  <strong>ng<\/strong><strong>-untouched<\/strong>\n  <\/td><\/tr><tr><td>\n  <strong>\u63a7\u4ef6\u7684\u503c\u662f\u5426\u53d8\u5316<\/strong>\n  <\/td><td>\n  <strong>ng<\/strong><strong>-dirty<\/strong>\n  <\/td><td>\n  <strong>ng<\/strong><strong>-pristine<\/strong>\n  <\/td><\/tr><tr><td>\n  <strong>\u63a7\u4ef6\u7684\u503c\u662f\u5426\u6709\u6548<\/strong>\n  <\/td><td>\n  <strong>ng<\/strong><strong>-valid<\/strong>\n  <\/td><td>\n  <strong>ng<\/strong><strong>-invalid<\/strong>\n  <\/td><\/tr><\/tbody><\/table>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>&nbsp;input.ng-valid{<\/strong>\n <strong>&nbsp;&nbsp;&nbsp; border:3px solid #42A948;<\/strong>\n <strong>&nbsp;}<\/strong>\n <strong>&nbsp;input.ng-invalid{<\/strong>\n <strong>&nbsp;&nbsp; border:3px solid #a94442;<\/strong>\n <strong>}<\/strong> <\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Angular\u8def\u7531<\/strong><\/h2>\n\n\n\n<p><strong>Angular\n<\/strong><strong>\u7684<\/strong><strong>\u8def\u7531\u80fd<\/strong><strong>\u8ba9\u7528\u6237<\/strong><strong>\u4ece\u4e00\u4e2a\u89c6\u56fe<\/strong><strong>\u5bfc\u822a<\/strong><strong>\u5230<\/strong><strong>\u53e6\u4e00\u4e2a\u89c6\u56fe<\/strong><strong>\u3002<\/strong><\/p>\n\n\n\n<p><strong>\u5728<\/strong><strong>Angular<\/strong><strong>\u4e2d\u4f7f\u7528\u8def\u7531\u5b9e\u73b0<\/strong><strong>\u8df3\u8f6c<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>\u521b\u5efa\u9879\u76ee\u65f6\u81ea\u52a8\u521b\u5efa\u4e86\u8def\u7531\u6a21\u5757\uff08app-routing.module.ts\uff09<\/strong> <\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">\/\/ <strong>\u5bfc\u5165\u9700\u8981\u52a0\u8f7d\u7684\u7ec4\u4ef6\uff0c\u53ef\u4ee5\u4ece\u6839\u6a21\u5757\u4e2d\u590d\u5236<\/strong> (\u81ea\u52a8\u751f\u6210)\n  {path: 'index\/:uname', component: IndexComponent}<\/pre>\n\n\n\n<p class=\"has-background has-light-green-cyan-background-color\"><strong>&lt;router-outlet&gt;&lt;\/router-outlet&gt;<\/strong><\/p>\n\n\n\n<p><strong>&lt;router-outlet&gt;<\/strong><strong>\u626e\u6f14\u4e00\u4e2a<\/strong><strong>\u5360\u4f4d\u7b26<\/strong><strong>\u7684\u89d2\u8272\uff0c\u6807\u51fa\u4e00\u4e2a<\/strong><strong>\u4f4d\u7f6e<\/strong><strong>\uff0c\u8def\u7531\u5bf9\u5e94\u7684\u7ec4\u4ef6\u663e\u793a\u5230\u8fd9\u4e2a\u4f4d\u7f6e<\/strong><\/p>\n\n\n\n<p><strong>\u5728\u6839\u7ec4\u4ef6<\/strong><strong>app.component.html<\/strong><strong>\u6587\u4ef6\u4e2d<\/strong><\/p>\n\n\n\n<p><strong>\u5728\u5730\u5740\u680f\u8f93\u5165\uff1a<\/strong><strong>\/index<\/strong><\/p>\n\n\n\n<p><strong>\u8def\u7531\u5c31\u4f1a\u5339\u914d\u5230<\/strong><strong>path<\/strong><strong>\u4e3a<\/strong><strong>index<\/strong><strong>\u7684\u8def\u7531<\/strong><\/p>\n\n\n\n<p><strong>\u5e76\u5728\u6839\u7ec4\u4ef6\u4e2d<\/strong><strong>&lt;r<\/strong><strong>outer-outlet&gt;<\/strong><strong>\u4f4d\u7f6e\u663e\u793a<\/strong><strong>index<\/strong><strong>\u7ec4\u4ef6\u3002<\/strong><\/p>\n\n\n\n<p class=\"has-background has-luminous-vivid-orange-background-color\"><strong>\u5728\u6839\u7ec4\u4ef6\u4e2d\u4e0d\u8981\u624b\u52a8\u8c03\u7528\u7ec4\u4ef6\u4e86\uff0c\u53bb\u6389<\/strong><strong>&lt;app-<\/strong><strong>\u7ec4\u4ef6\u540d\u79f0<\/strong><strong>&gt; &lt;\/app-<\/strong><strong>\u7ec4\u4ef6\u540d\u79f0<\/strong><strong>&gt;<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u4ee3\u7801\u8c03\u7528\u8def\u7531<\/strong><\/h3>\n\n\n\n<p><strong>\u5728\u6784\u9020\u51fd\u6570constructor(private router:Router)\u4e2d\u6ce8\u5165\u8def\u7531\u5668,\u6ce8\u5165\u65f6\u5fc5\u987b\u6dfb\u52a0\u8bbf\u95ee\u4fee\u9970\u7b26<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>import { Router } from \u2018@angular\/router\u2019;&nbsp; \/\/\u5bfc\u5165\u8def\u7531\u5668<\/strong>\n <strong>\u2026.<\/strong>\n <strong>export class LoginComponent implements OnInit {<\/strong>\n \n <strong>&nbsp; constructor(private router:Router) { }&nbsp;&nbsp;&nbsp; \/\/\u6ce8\u5165\u8def\u7531\u5668<\/strong>\n \n <strong>&nbsp; login(data: any){<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp; if(data.username==\"zhangsan\" &amp;&amp;data.password==\"123456\"){<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/ \u4f7f\u7528\u8def\u7531\u5668\u5bfc\u822a\u5230\u9996\u9875<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.router.navigate([\u2018\/index\u2019]);<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp; }<\/strong>\n <strong>}<\/strong> <\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u9ed8\u8ba4\u8def\u7531<\/strong><\/h3>\n\n\n\n<p><strong>\u5f53 <\/strong><strong>path\n<\/strong><strong>\u4e3a\u7a7a<\/strong><strong>\u65f6\u91cd\u5b9a\u5411<\/strong><strong>\u5230<\/strong><strong>\/login<\/strong><strong>\u8def\u7531<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>const routes: Routes = [&nbsp; <\/strong>\n <strong>&nbsp;&nbsp; \u2026..<\/strong>\n <strong>&nbsp; {path:\u2018 \u2019,redirectTo:\u2018\/login\u2018, pathMatch: 'full'}<\/strong>\n \n <strong>]; <\/strong> \n\/\/<strong>redirectTo\uff1a\u91cd\u5b9a\u5411<\/strong>\n\/\/<strong>pathMatch\uff1a\u8def\u5f84\u5339\u914d\u65b9\u5f0f\uff0cfull\u5b8c\u5168\u5339\u914d<\/strong> <\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>routerLink\u6307\u4ee4<\/strong>(A\u6807\u7b7e?)<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>&lt;ul&gt; <\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a [routerLink]=\u201c[\u2018\/index\u2019]\u201d&gt;\u9996\u9875&lt;\/a&gt;&lt;\/li&gt;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a [routerLink]=\u201c[\u2018\/login\u2019]\u201d&gt;\u767b\u5f55&lt;\/a&gt;&lt;\/li&gt;<\/strong>\n <strong>&lt;\/ul&gt;<\/strong> <\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u8def\u7531path\u4f20\u9012\u53c2\u6570<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>const routes: Routes = [<\/strong>\n <strong>{path:'main',component:MainComponent},<\/strong>\n <strong>{path:'login',component:LoginComponent},<\/strong>\n <strong>\/\/&nbsp; \/:\u53c2\u6570\u540d<\/strong>\n <strong>{path:\u2018first\/:name',component:FirstComponent}\n ];<\/strong> <\/pre>\n\n\n\n<p><strong>ActivatedRoute<\/strong><strong>\u6d3b\u52a8\u8def\u7531\uff0c\u53ef\u4ee5\u4fdd\u5b58\u5f53\u524d\u8def\u7531<\/strong><strong>\u4f20\u9012<\/strong><strong>\u7684\u4fe1\u606f<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>\/\/\u5bfc\u5165\u6d3b\u52a8\u8def\u7531<\/strong>\n <strong>import {ActivatedRoute} from '@angular\/router';<\/strong>\n <strong>\/\/\u5728\u6784\u9020\u51fd\u6570\u4e2d\u6ce8\u5165\u6d3b\u52a8\u8def\u7531<\/strong>\n <strong>constructor(private route:ActivatedRoute) { }<\/strong> <\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"> <strong>routerLink\u4f20\u503c<\/strong> (a\u6807\u7b7e\u4f20\u503c \u725bB)<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>&nbsp;&lt;a [routerLink]=\u201c[\u2018\/first\u2019,\u2019\u5f20\u4e09\u2019]\u201d&gt;\u7b2c\u4e00\u4e2a&lt;\/a&gt;<\/strong> <\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"> <strong>\u4ee3\u7801\u4f20\u503c<\/strong> <\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>this.router.navigate([\"\/index\", \u2019\u5f20\u4e09\u2019 ]);<\/strong> <\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u53ef\u89c2\u5bdf\u5bf9\u8c61(Observable)<\/strong><\/h2>\n\n\n\n<p><strong>\u901a\u8fc7<\/strong><strong>\u6d3b\u52a8\u8def\u7531<\/strong><strong>\u7684<\/strong><strong>paramMap<\/strong><strong>\u5c5e\u6027\u83b7\u53d6\u4f20\u9012\u7684\u6570\u636e<\/strong><\/p>\n\n\n\n<p><strong>paramMap<\/strong><strong>\u5c5e\u6027\u662f\u4e00\u4e2a<\/strong><strong>\u53ef\u89c2\u5bdf\u5bf9\u8c61<\/strong><strong>(Observable<\/strong><strong>)<\/strong><strong>\u5bf9\u8c61<\/strong><\/p>\n\n\n\n<p><strong>\u53ef<\/strong><strong>\u89c2\u5bdf\u5bf9\u8c61\u652f\u6301\u5728\u5e94\u7528\u4e2d\u7684<\/strong><strong>\u53d1\u5e03\u8005<\/strong><strong>\u548c<\/strong><strong>\u8ba2\u9605\u8005<\/strong><strong>\u4e4b\u95f4<\/strong><strong>\u4f20\u9012<\/strong><strong>\u6d88\u606f<\/strong><\/p>\n\n\n\n<p><strong>\u83b7\u53d6\u4f20\u9012\u7684\u6d88\u606f\uff0c\u5c31\u8981\u8c03\u7528<\/strong><strong>subscribe(<\/strong><strong>\u533f\u540d\u51fd\u6570<\/strong><strong>)<\/strong><strong>&nbsp;<\/strong><strong>\u65b9\u6cd5<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>ngOnInit() {<\/strong>\n <strong>&nbsp;&nbsp;&nbsp; this.route.paramMap.subscribe(<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/\u6570\u636e\u4f20\u9012\u5230data\u4e2d<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function(data){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/\u6839\u636e\u53c2\u6570\u540d\u79f0\u83b7\u53d6\u4f20\u9012\u7684\u503c&nbsp;&nbsp; <\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(data.get(\"name\"));&nbsp;&nbsp; <\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp; );&nbsp; <\/strong>\n <strong>&nbsp; }<\/strong> <\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u7bad\u5934\u51fd\u6570<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"> <strong>\u533f\u540d\u51fd\u6570<\/strong> <\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>function\uff08\u53c2\u65701,\u53c2\u65702, \u2026.\u53c2\u6570n\uff09{<\/strong>\n <strong>&nbsp;&nbsp; \u2026\u2026..<\/strong>\n <strong>}<\/strong> <\/pre>\n\n\n\n<p><strong>\u7bad\u5934\u51fd\u6570\u5c31\u662f\u7b80\u5316\u4e86\u7684\u533f\u540d\u51fd\u6570<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>\/\/\u5b8c\u6574\u7bad\u5934\u51fd\u6570<\/strong>\n <strong>(\u53c2\u65701, \u53c2\u65702, \u2026, \u53c2\u6570N) =&gt; { \u51fd\u6570\u4e3b\u4f53}<\/strong>\n <strong>\/\/\u53ea\u6709\u4e00\u6761\u8bed\u53e5\uff0c\u5927\u62ec\u53f7\u7701\u7565<\/strong>\n <strong>(\u53c2\u65701, \u53c2\u65702, \u2026, \u53c2\u6570N) =&gt;\u8868\u8fbe\u5f0f<\/strong>\n <strong>\/\/ \u5f53\u53ea\u6709\u4e00\u4e2a\u53c2\u6570\u65f6\uff0c\u5706\u62ec\u53f7\u662f\u53ef\u9009\u7684\uff1a<\/strong>\n <strong>\u5355\u4e00\u53c2\u6570 =&gt; {\u51fd\u6570\u4e3b\u4f53}<\/strong>\n <strong>\/\/ \u53ea\u6709\u4e00\u6761\u8bed\u53e5\uff0c\u4e00\u4e2a\u53c2\u6570<\/strong>\n <strong>\u5355\u4e00\u53c2\u6570 =&gt;\u8868\u8fbe\u5f0f<\/strong> <\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"> <strong>\u4f7f\u7528\u7bad\u5934\u51fd\u6570\u7b80\u5316\u533f\u540d\u51fd\u6570<\/strong> <\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>\/\/\u6ce8\u5165\u6d3b\u52a8\u8def\u7531<\/strong>\n <strong>constructor(private route:ActivatedRoute) { }<\/strong>\n <strong>&nbsp; aa:string;<\/strong>\n <strong>&nbsp; ngOnInit() {<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp; this.route.paramMap.subscribe(data=&gt;this.aa=data.get(\u2018name\u2019));&nbsp;&nbsp;&nbsp; <\/strong>\n <strong>&nbsp; }<\/strong> <\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Get\u4f20\u503c<\/strong><\/h2>\n\n\n\n<p><strong>Get<\/strong><strong>\u4f20\u503c\uff0c\u4f7f\u7528<\/strong><strong>queryParams<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>&lt;a [routerLink]=\"['\/sample']\" [queryParams]=\"{id:3,name:'\u5f20\u4e09'}\"&gt;\u9875\u9762\u56db&lt;\/a&gt;<\/strong> <\/pre>\n\n\n\n<p><strong>\u4ee3\u7801\u4f20\u503c<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>this.router.navigate([\"\/sample\"],{queryParams: {id: 123,name:'zhangsan'}})<\/strong> <\/pre>\n\n\n\n<p><strong>\u4f7f\u7528\u6d3b\u52a8\u8def\u7531\u7684<\/strong><strong>queryParamMap<\/strong><strong>\u83b7\u53d6\u6570\u636e<\/strong><\/p>\n\n\n\n<p><strong>queryParamMap<\/strong><strong>\u662f\u4e00\u4e2a<\/strong><strong>\u53ef\u89c2\u5bdf\u5bf9\u8c61<\/strong><strong>(Observable)<\/strong><strong>\u5bf9\u8c61<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>\/\/\u6ce8\u5165\u6d3b\u52a8\u8def\u7531<\/strong>\n <strong>constructor(private route:ActivatedRoute) { }<\/strong>\n <strong>&nbsp; name:string=\"\";<\/strong>\n <strong>&nbsp; ngOnInit() {<\/strong>\n <strong>&nbsp;this.route.queryParamMap.subscribe(<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data=&gt;{ <\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(data.get(\"name\")); <\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(data.get('id'))<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; );&nbsp; <\/strong>\n <strong>&nbsp;}<\/strong> <\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>HttpClient\u540e\u53f0\u901a\u8baf<\/strong><\/h2>\n\n\n\n<p><strong>\u8981\u60f3\u4f7f\u7528 <\/strong><strong>HttpClient<\/strong><strong>\uff0c<\/strong><strong>\u5fc5\u987b\u5728\u6839\u6a21\u5757\uff08<\/strong><strong>app.module.ts<\/strong><strong>\uff09<\/strong><strong>\u4e2d<\/strong><strong>\u5bfc<\/strong><strong>\u5165 <\/strong><strong>Angular\n<\/strong><strong>\u7684\n<\/strong><strong>HttpClientModule<\/strong><strong>\u6a21\u5757<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>import { HttpClientModule } from '@angular\/common\/http';<\/strong>\n <strong>@NgModule({<\/strong>\n <strong>&nbsp; \u2026.<\/strong>\n <strong>&nbsp; imports: [<\/strong>\n <strong>&nbsp;&nbsp;&nbsp; BrowserModule,<\/strong>\n <strong>&nbsp;&nbsp;&nbsp; HttpClientModule<\/strong>\n <strong>&nbsp; ],<\/strong>\n <strong>&nbsp; \u2026.<\/strong>\n <strong>})<\/strong> <\/pre>\n\n\n\n<p><strong>\u5728\u7ec4\u4ef6\u4e2d\u5bfc\u5165HttpClient<\/strong><\/p>\n\n\n\n<p><strong>\u5e76\u5728\u7ec4\u4ef6\u7684\u6784\u9020\u51fd\u6570\u4e2d\u6ce8\u5165HTTP\u670d\u52a1<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>import { HttpClient } from '@angular\/common\/http';<\/strong>\n \n <strong>export class SampleComponent implements OnInit {<\/strong>\n \n <strong>&nbsp; constructor(private http: HttpClient) { }<\/strong>\n \n <strong>&nbsp; ngOnInit() {<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \u2026..<\/strong>\n <strong>&nbsp; }<\/strong>\n \n <strong>}<\/strong> <\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u5411\u540e\u53f0\u53d1\u9001\u6570\u636e<\/strong><\/h3>\n\n\n\n<p><strong>\u4f7f\u7528<\/strong><strong>httpClient<\/strong><strong>\u7684<\/strong><strong>post<\/strong><strong>()<\/strong><strong>\u65b9\u6cd5<\/strong><strong>\u5411<\/strong><strong>\u540e\u53f0\u53d1\u9001\u6570\u636e<\/strong><strong>\u3002<\/strong><\/p>\n\n\n\n<p><strong>post<\/strong><strong>()<\/strong><strong>\u65b9\u6cd5\u8fd4\u56de\u4e00\u4e2a<\/strong><strong>\u53ef\u89c2\u5bdf\u5bf9\u8c61<\/strong><strong>(Observable<\/strong><strong>\u5bf9\u8c61<\/strong><strong>)<\/strong><\/p>\n\n\n\n<p><strong>\u83b7\u53d6\u6570\u636e\uff0c\u5c31\u8981\u8c03\u7528<\/strong><strong>subscribe(<\/strong><strong>\u7bad\u5934\u51fd\u6570<\/strong><strong>)<\/strong><strong>&nbsp;<\/strong><strong>\u65b9\u6cd5<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>url = \u2018http:\/\/localhost:8080\/StuManager\/stu\/addStu\u2019; \/\/\u540e\u53f0\u5730\u5740<\/strong>\n \n <strong>&nbsp;&nbsp;add(a:&nbsp;any){&nbsp;&nbsp;&nbsp;&nbsp;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp; \/\/post(\u540e\u53f0\u5730\u5740\uff0c\u53d1\u9001\u7684\u6570\u636e)&nbsp;<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;this.http.post(this.url,a).subscribe(data=&gt;{<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/ data\u662f\u540e\u53f0\u8fd4\u56de\u7684\u5f71\u54cd\u884c\u6570&nbsp; <\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;if(data&gt;0){<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(\"\u6dfb\u52a0\u6570\u636e\u6210\u529f\");<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;});<\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;<\/strong>\n <strong>&nbsp;&nbsp;}<\/strong> <\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u83b7\u53d6\u540e\u53f0\u6570\u636e<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\"> <strong>import { HttpClient } from \u2018@angular\/common\/http\u2019; \/\/\u5bfc\u5165HttpClient &nbsp;<\/strong>\n \n <strong>constructor(private http: HttpClient) { }&nbsp; \/\/\u6ce8\u5165HttpClient<\/strong>\n \n <strong>&nbsp; stuList: any;&nbsp; \/\/\u5b58\u67e5\u8be2\u7ed3\u679c<\/strong>\n <strong>&nbsp; url = \u2018http:\/\/xt-jiaoshiji:8080\/StuManager\/stu\/getStu\u2019; \/\/\u540e\u53f0\u5730\u5740<\/strong>\n \n <strong>&nbsp; getData(){&nbsp;&nbsp; <\/strong>\n <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.http.get(url).subscribe(data=&gt;this.stuList=data);&nbsp;&nbsp;&nbsp; <\/strong>\n <strong>&nbsp; }<\/strong> <\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u9605\u8bfb\u4e4b\u524d\u9700\u8981\u5177\u6709TypeScript\u57fa\u7840\u77e5\u8bc6TypeScript\u57fa\u7840\u603b\u7ed3 \u5982\u679c\u60a8\u7ee7\u7eed\u9605\u8bfb \u6211\u5c06\u9ed8\u8ba4\u4e3a\u60a8\u5df2\u5177\u6709\u76f8 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[23,22],"class_list":["post-523","post","type-post","status-publish","format-standard","hentry","tag-angular","tag-projk"],"_links":{"self":[{"href":"https:\/\/blog.tongyunli.top\/index.php?rest_route=\/wp\/v2\/posts\/523","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.tongyunli.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.tongyunli.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.tongyunli.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.tongyunli.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=523"}],"version-history":[{"count":0,"href":"https:\/\/blog.tongyunli.top\/index.php?rest_route=\/wp\/v2\/posts\/523\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.tongyunli.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.tongyunli.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=523"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.tongyunli.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}