{"id":80207,"date":"2024-11-01T16:25:51","date_gmt":"2024-11-01T09:25:51","guid":{"rendered":"https:\/\/itviec.com\/blog\/?p=80207"},"modified":"2024-11-01T16:25:51","modified_gmt":"2024-11-01T09:25:51","slug":"so-sanh-angular-vs-angularjs","status":"publish","type":"post","link":"https:\/\/itviec.com\/blog\/so-sanh-angular-vs-angularjs\/","title":{"rendered":"Angular vs AngularJS: So s\u00e1nh nh\u1eefng \u0111i\u1ec3m kh\u00e1c nhau quan tr\u1ecdng"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">N\u1ed9i dung b\u00e0i vi\u1ebft<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/itviec.com\/blog\/so-sanh-angular-vs-angularjs\/#Angular_la_gi\" >Angular l\u00e0 g\u00ec?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/itviec.com\/blog\/so-sanh-angular-vs-angularjs\/#AngularJS_la_gi\" >AngularJS l\u00e0 g\u00ec?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/itviec.com\/blog\/so-sanh-angular-vs-angularjs\/#Su_khac_nhau_giua_Angular_vs_AngularJS_theo_nhieu_tieu_chi\" >S\u1ef1 kh\u00e1c nhau gi\u1eefa Angular vs AngularJS theo nhi\u1ec1u ti\u00eau ch\u00ed<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/itviec.com\/blog\/so-sanh-angular-vs-angularjs\/#So_sanh_nhanh_Angular_vs_AngularJS\" >So s\u00e1nh nhanh Angular vs AngularJS<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/itviec.com\/blog\/so-sanh-angular-vs-angularjs\/#Cac_cau_hoi_thuong_gap_ve_Angular_vs_AngularJS\" >C\u00e1c c\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 Angular vs AngularJS<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/itviec.com\/blog\/so-sanh-angular-vs-angularjs\/#Tong_ket_ve_Angular_vs_AngularJS\" >T\u1ed5ng k\u1ebft v\u1ec1 Angular vs AngularJS<\/a><\/li><\/ul><\/nav><\/div>\n<p><b><i>Angular v\u00e0 AngularJS l\u00e0 hai framework ph\u1ed5 bi\u1ebfn \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 x\u00e2y d\u1ef1ng c\u00e1c trang web v\u1edbi hi\u1ec7u \u1ee9ng \u0111\u1ed9ng. M\u1eb7c d\u00f9 \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n b\u1edfi Google nh\u01b0ng ch\u00fang v\u1eabn c\u00f3 m\u1ed9t s\u1ed1 \u0111i\u1ec3m kh\u00e1c nhau v\u1ec1 ki\u1ebfn tr\u00fac, t\u00ednh n\u0103ng c\u0169ng nh\u01b0 hi\u1ec7u su\u1ea5t. B\u00e0i vi\u1ebft so s\u00e1nh chi ti\u1ebft Angular vs AngularJS theo nhi\u1ec1u ti\u00eau ch\u00ed kh\u00e1c nhau \u0111\u1ec3 b\u1ea1n c\u00f3 th\u1ec3 t\u1ef1 tin ch\u1ecdn ra framework ph\u00f9 h\u1ee3p.<\/i><\/b><\/p>\n<p><span style=\"font-weight: 400;\">\u0110\u1ecdc b\u00e0i vi\u1ebft sau \u0111\u1ec3 \u0111\u01b0\u1ee3c gi\u1ea3i \u0111\u00e1p r\u00f5 h\u01a1n v\u1ec1:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\u0110\u1ecbnh ngh\u0129a v\u1ec1 Angular v\u00e0 AngularJS bao g\u1ed3m ch\u1ee9c n\u0103ng n\u1ed5i b\u1eadt, \u01b0u nh\u01b0\u1ee3c \u0111i\u1ec3m v\u00e0 c\u00e1ch s\u1eed d\u1ee5ng<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">So s\u00e1nh s\u1ef1 kh\u00e1c nhau gi\u1eefa Angular vs AngularJS v\u1ec1 c\u1ea5u h\u00ecnh c\u0169ng nh\u01b0 c\u00e1ch ho\u1ea1t \u0111\u1ed9ng<\/span><\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Angular_la_gi\"><\/span><b>Angular l\u00e0 g\u00ec?<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Angular l\u00e0 m\u1ed9t m\u00e3 ngu\u1ed3n m\u1edf framework JavaScript do Google ph\u00e1t tri\u1ec3n \u0111\u1ec3 \u1ee9ng d\u1ee5ng trong x\u00e2y d\u1ef1ng trang web. Front-end Developer th\u01b0\u1eddng s\u1eed d\u1ee5ng Angular v\u00e0 React \u0111\u1ec3 thao t\u00e1c d\u1eef li\u1ec7u trong ph\u00e1t tri\u1ec3n web hi\u1ec7u qu\u1ea3 h\u01a1n. Trong phi\u00ean b\u1ea3n m\u1edbi nh\u1ea5t, Angular \u0111\u01b0\u1ee3c c\u1ea3i ti\u1ebfn hi\u1ec7u qu\u1ea3 h\u01a1n, c\u00e1c ch\u1ee9c n\u0103ng c\u1ed1t l\u00f5i \u0111\u01b0\u1ee3c chuy\u1ec3n sang module kh\u00e1c nhau.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Angular CLI \u0111\u01b0\u1ee3c th\u00eam v\u00e0o v\u1edbi s\u1ef1 tr\u1ee3 gi\u00fap c\u1ee7a giao di\u1ec7n d\u00f2ng l\u1ec7nh n\u00e0y, b\u1ea1n c\u00f3 th\u1ec3 c\u00e0i \u0111\u1eb7t c\u00e1c c\u00e2u l\u1ec7nh c\u1ea7n thi\u1ebft \u0111\u1ec3 t\u1ea1o \u0111i\u1ec1u ki\u1ec7n cho vi\u1ec7c t\u1ea1o v\u00e0 bi\u1ebfn m\u00e3 c\u00f3 c\u1ea5u tr\u00fac ph\u1ee9c t\u1ea1p th\u00e0nh m\u1ed9t d\u1ea1ng module c\u00f3 th\u1ec3 d\u1ec5 d\u00e0ng qu\u1ea3n l\u00fd.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">M\u1ed9t s\u1ed1 \u0111i\u1ec3m n\u1ed5i b\u1eadt c\u1ee7a Angular nh\u01b0:\u00a0<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Ki\u1ebfn tr\u00fac Components-Based:<\/b><span style=\"font-weight: 400;\"> Th\u00fac \u0111\u1ea9y kh\u1ea3 n\u0103ng t\u00e1i s\u1eed d\u1ee5ng v\u00e0 module ho\u00e1 gi\u00fap c\u00e1c \u1ee9ng d\u1ee5ng d\u1ec5 b\u1ea3o tr\u00ec v\u00e0 m\u1edf r\u1ed9ng quy m\u00f4 h\u01a1n.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>TypeScript:<\/b><span style=\"font-weight: 400;\"> H\u1ec7 th\u1ed1ng JavaScript n\u00e2ng cao, cung c\u1ea5p ki\u1ec3u d\u1eef li\u1ec7u t\u0129nh v\u00e0 c\u00e1c t\u00ednh n\u0103ng l\u1eadp tr\u00ecnh h\u01b0\u1edbng \u0111\u1ed1i t\u01b0\u1ee3ng n\u00e2ng cao v\u1edbi hi\u1ec7u \u1ee9ng giao di\u1ec7n \u0111a d\u1ea1ng h\u01a1n, d\u1ec5 d\u00e0ng qu\u1ea3n l\u00fd v\u00e0 b\u1ea3o tr\u00ec.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Li\u00ean k\u1ebft d\u1eef li\u1ec7u m\u1ed9t chi\u1ec1u (One-way data binding):<\/b><span style=\"font-weight: 400;\">\u00a0 Cho ph\u00e9p \u0111\u1ed3ng b\u1ed9 h\u00f3a t\u1ef1 \u0111\u1ed9ng gi\u1eefa model v\u00e0 view, gi\u00fap gi\u1ea3m s\u1ed1 l\u01b0\u1ee3ng code c\u1ea7n vi\u1ebft.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Dependency Injection:<\/b><span style=\"font-weight: 400;\"> Cung c\u1ea5p m\u1ed9t h\u1ec7 th\u1ed1ng DI ph\u00e2n c\u1ea5p cho ph\u00e9p t\u1ed5 ch\u1ee9c v\u00e0 ki\u1ec3m so\u00e1t d\u1ecbch v\u1ee5 t\u1ed1t h\u01a1n tr\u00ean c\u00e1c th\u00e0nh ph\u1ea7n.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Angular CLI:<\/b><span style=\"font-weight: 400;\"> Giao di\u1ec7n d\u00f2ng l\u1ec7nh (command-line) m\u1ea1nh m\u1ebd gi\u00fap t\u1ef1 \u0111\u1ed9ng ho\u00e1 c\u00e1c t\u00e1c v\u1ee5 nh\u01b0 ki\u1ec3m th\u1eed v\u00e0 tri\u1ec3n khai.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>\u0110\u1ecbnh tuy\u1ebfn v\u00e0 T\u1ed1c \u0111\u1ed9 t\u1ea3i (Routing &amp; Loading):<\/b><span style=\"font-weight: 400;\"> H\u1ed7 tr\u1ee3 \u0111\u1ecbnh tuy\u1ebfn n\u00e2ng cao v\u00e0 t\u1ea3i ch\u1eadm (lazy loading), gi\u00fap c\u1ea3i thi\u1ec7n hi\u1ec7u su\u1ea5t \u1ee9ng d\u1ee5ng v\u00e0 tr\u1ea3i nghi\u1ec7m ng\u01b0\u1eddi d\u00f9ng.<\/span><\/li>\n<\/ul>\n<pre><span style=\"font-weight: 400;\">import<\/span><span style=\"font-weight: 400;\"> { Component } <\/span><span style=\"font-weight: 400;\">from<\/span> <span style=\"font-weight: 400;\">\"@angular\/core\"<\/span><span style=\"font-weight: 400;\">;<\/span>\r\n<span style=\"font-weight: 400;\">@Component({<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 selector: <\/span><span style=\"font-weight: 400;\">\"my-app\"<\/span><span style=\"font-weight: 400;\">,<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 templateUrl: <\/span><span style=\"font-weight: 400;\">\".\/app.component.html\"<\/span><span style=\"font-weight: 400;\">,<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 styleUrls: [<\/span><span style=\"font-weight: 400;\">\".\/app.component.css\"<\/span><span style=\"font-weight: 400;\">],<\/span>\r\n<span style=\"font-weight: 400;\">})<\/span>\r\n<span style=\"font-weight: 400;\">export<\/span> <span style=\"font-weight: 400;\">class<\/span> <span style=\"font-weight: 400;\">AppComponent<\/span><span style=\"font-weight: 400;\"> {<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 title = <\/span><span style=\"font-weight: 400;\">\"ITviec Blog\"<\/span><span style=\"font-weight: 400;\">;<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 about = <\/span><span style=\"font-weight: 400;\">\"Trang th\u00f4ng tin v\u1ec1 l\u0129nh v\u1ef1c IT\"<\/span><span style=\"font-weight: 400;\">;<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 data = <\/span><span style=\"font-weight: 400;\">\"String Interpolation\"<\/span><span style=\"font-weight: 400;\">;<\/span>\r\n<span style=\"font-weight: 400;\">}<\/span><\/pre>\n<blockquote><p><em>\u0110\u1ecdc th\u00eam: <a href=\"https:\/\/itviec.com\/blog\/angular-la-gi\/\" target=\"_blank\" rel=\"noopener\"><strong>Angular l\u00e0 g\u00ec? C\u00f3 ph\u1ea3i l\u00e0 v\u0169 kh\u00ed h\u1ea1ng n\u1eb7ng c\u1ee7a Front-end Developer?<\/strong><\/a><\/em><\/p><\/blockquote>\n<h2><span class=\"ez-toc-section\" id=\"AngularJS_la_gi\"><\/span><b>AngularJS l\u00e0 g\u00ec?<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">AngularJS (c\u00f2n \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 Angular 1.x) l\u00e0 m\u1ed9t framework JavaScript \u0111\u01b0\u1ee3c d\u00f9ng \u0111\u1ec3 ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng web. \u0110\u00e2y l\u00e0 m\u1ed9t c\u00f4ng c\u1ee5 giao di\u1ec7n m\u00e3 ngu\u1ed3n m\u1edf s\u1eed d\u1ee5ng HTML l\u00e0m ng\u00f4n ng\u1eef m\u1eabu, gi\u00fap AngularJS tr\u1ef1c quan h\u01a1n khi s\u1eed d\u1ee5ng. \u0110\u1ed1i t\u01b0\u1ee3ng ban \u0111\u1ea7u c\u1ee7a AngularJS l\u00e0 developers v\u00ec cung c\u1ea5p cho front-end developers m\u1ed9t gi\u1ea3i ph\u00e1p to\u00e0n di\u1ec7n m\u00e0 kh\u00f4ng c\u1ea7n d\u1ef1a v\u00e0o plugin ho\u1eb7c khung kh\u00e1c.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">AngularJS c\u00f3 t\u00ednh n\u0103ng ki\u1ec3m tra \u0111\u01a1n v\u1ecb s\u1eb5n s\u00e0ng c\u1eadp nh\u1eadt li\u00ean t\u1ee5c, cho ph\u00e9p developer s\u1eed d\u1ee5ng m\u00e3 c\u1ee7a h\u1ecd \u0111\u1ec3 t\u00ecm ra l\u1ed7i m\u1ed9t c\u00e1ch nhanh ch\u00f3ng.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">AngularJS framework s\u1eed d\u1ee5ng ch\u1ec9 th\u1ecb (directives) \u0111\u1ec3 l\u00e0m phong ph\u00fa h\u01a1n ng\u00f4n ng\u1eef HTML hi\u1ec7n c\u00f3, ngh\u0129a l\u00e0 ki\u1ebfn tr\u00fac \u0111\u01a1n gi\u1ea3n c\u1ee7a n\u00f3 th\u01b0\u1eddng cho ph\u00e9p developers ph\u00e1t tri\u1ec3n c\u00e1c \u1ee9ng d\u1ee5ng di \u0111\u1ed9ng ho\u1eb7c web m\u1ed9t c\u00e1ch nhanh ch\u00f3ng. Ki\u1ebfn tr\u00fac MVC (Model-View-Control) cho ph\u00e9p li\u00ean k\u1ebft d\u1eef li\u1ec7u hai chi\u1ec1u (two-way data binding) \u0111\u1ec3 t\u0103ng t\u1ed1c \u0111\u1ed9 ph\u00e1t tri\u1ec3n v\u00e0 \u0111\u1ea1t \u0111\u01b0\u1ee3c giao di\u1ec7n v\u1edbi \u00edt m\u00e3 h\u01a1n.\u00a0<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">&lt;!DOCTYPE html&gt;<\/span>\r\n<span style=\"font-weight: 400;\">&lt;<\/span><b>html<\/b><span style=\"font-weight: 400;\"> ng-app=<\/span><span style=\"font-weight: 400;\">\"myApp\"<\/span><span style=\"font-weight: 400;\">&gt;<\/span>\r\n<span style=\"font-weight: 400;\">&lt;<\/span><b>head<\/b><span style=\"font-weight: 400;\">&gt;<\/span>\r\n<span style=\"font-weight: 400;\">&lt;<\/span><b>script<\/b><span style=\"font-weight: 400;\"> src=<\/span><span style=\"font-weight: 400;\">\"https:\/\/ajax.googleapis.com\/ajax\/libs\/angularjs\/1.8.2\/angular.min.js\"<\/span><span style=\"font-weight: 400;\">&gt;&lt;\/<\/span><b>script<\/b><span style=\"font-weight: 400;\">&gt;<\/span>\r\n<span style=\"font-weight: 400;\">&lt;\/<\/span><b>head<\/b><span style=\"font-weight: 400;\">&gt;<\/span>\r\n<span style=\"font-weight: 400;\">&lt;<\/span><b>body<\/b><span style=\"font-weight: 400;\">&gt;<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 <\/span><span style=\"font-weight: 400;\">&lt;<\/span><b>div<\/b><span style=\"font-weight: 400;\"> ng-controller=<\/span><span style=\"font-weight: 400;\">\"MyController\"<\/span><span style=\"font-weight: 400;\">&gt;<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span><span style=\"font-weight: 400;\">&lt;<\/span><b>h1<\/b><span style=\"font-weight: 400;\"> style=<\/span><span style=\"font-weight: 400;\">\"color:red\"<\/span><span style=\"font-weight: 400;\">&gt;<\/span><span style=\"font-weight: 400;\">{{title}}<\/span><span style=\"font-weight: 400;\">&lt;\/<\/span><b>h1<\/b><span style=\"font-weight: 400;\">&gt;<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span><span style=\"font-weight: 400;\">&lt;<\/span><b>h3<\/b><span style=\"font-weight: 400;\">&gt;<\/span><span style=\"font-weight: 400;\">AngularJS String Interpolation<\/span><span style=\"font-weight: 400;\">&lt;\/<\/span><b>h3<\/b><span style=\"font-weight: 400;\">&gt;<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span><span style=\"font-weight: 400;\">&lt;<\/span><b>p<\/b><span style=\"font-weight: 400;\">&gt;<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 Learn <\/span><span style=\"font-weight: 400;\">{{course}}<\/span> <span style=\"font-weight: 400;\">{{subject}}<\/span><span style=\"font-weight: 400;\"> from <\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <\/span><span style=\"font-weight: 400;\">&lt;<\/span><b>a<\/b><span style=\"font-weight: 400;\"> href=<\/span><span style=\"font-weight: 400;\">\"https:\/\/itviec.com\/blog\/\"<\/span><span style=\"font-weight: 400;\">&gt;<\/span><span style=\"font-weight: 400;\">{{company}}<\/span><span style=\"font-weight: 400;\">&lt;\/<\/span><b>a<\/b><span style=\"font-weight: 400;\">&gt;<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span><span style=\"font-weight: 400;\">&lt;\/<\/span><b>p<\/b><span style=\"font-weight: 400;\">&gt;<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span><span style=\"font-weight: 400;\">&lt;<\/span><b>input<\/b><span style=\"font-weight: 400;\"> type=<\/span><span style=\"font-weight: 400;\">\"text\"<\/span><span style=\"font-weight: 400;\"> ng-model=<\/span><span style=\"font-weight: 400;\">\"newItem\"<\/span><span style=\"font-weight: 400;\">&gt;<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span><span style=\"font-weight: 400;\">&lt;<\/span><b>button<\/b><span style=\"font-weight: 400;\"> ng-click=<\/span><span style=\"font-weight: 400;\">\"addItem()\"<\/span><span style=\"font-weight: 400;\">&gt;<\/span><span style=\"font-weight: 400;\">Add Item<\/span><span style=\"font-weight: 400;\">&lt;\/<\/span><b>button<\/b><span style=\"font-weight: 400;\">&gt;<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span><span style=\"font-weight: 400;\">&lt;<\/span><b>ul<\/b><span style=\"font-weight: 400;\">&gt;<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <\/span><span style=\"font-weight: 400;\">&lt;<\/span><b>li<\/b><span style=\"font-weight: 400;\"> ng-repeat=<\/span><span style=\"font-weight: 400;\">\"item in items\"<\/span><span style=\"font-weight: 400;\">&gt;<\/span><span style=\"font-weight: 400;\">{{item}}<\/span><span style=\"font-weight: 400;\">&lt;\/<\/span><b>li<\/b><span style=\"font-weight: 400;\">&gt;<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span><span style=\"font-weight: 400;\">&lt;\/<\/span><b>ul<\/b><span style=\"font-weight: 400;\">&gt;<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 <\/span><span style=\"font-weight: 400;\">&lt;\/<\/span><b>div<\/b><span style=\"font-weight: 400;\">&gt;<\/span>\r\n\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 <\/span><span style=\"font-weight: 400;\">&lt;<\/span><b>script<\/b><span style=\"font-weight: 400;\">&gt;<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span><span style=\"font-weight: 400;\">var<\/span><span style=\"font-weight: 400;\"> app = angular.module(<\/span><span style=\"font-weight: 400;\">'myApp'<\/span><span style=\"font-weight: 400;\">, []);<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 app.controller(<\/span><span style=\"font-weight: 400;\">'MyController'<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">function<\/span><span style=\"font-weight: 400;\">($scope) {<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 $scope.title = <\/span><span style=\"font-weight: 400;\">\"ITviec Blog\"<\/span><span style=\"font-weight: 400;\">;<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 $scope.course = <\/span><span style=\"font-weight: 400;\">\"AngularJS\"<\/span><span style=\"font-weight: 400;\">;<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 $scope.subject = <\/span><span style=\"font-weight: 400;\">\"Tutorial\"<\/span><span style=\"font-weight: 400;\">;<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 $scope.company = <\/span><span style=\"font-weight: 400;\">\"ITviec Blog\"<\/span><span style=\"font-weight: 400;\">;<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 $scope.items = [<\/span><span style=\"font-weight: 400;\">\"Item 1\"<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">\"Item 2\"<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">\"Item 3\"<\/span><span style=\"font-weight: 400;\">];<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 $scope.addItem = <\/span><span style=\"font-weight: 400;\">function<\/span><span style=\"font-weight: 400;\">() {<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <\/span><span style=\"font-weight: 400;\">if<\/span><span style=\"font-weight: 400;\"> ($scope.newItem) {<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 $scope.items.push($scope.newItem);<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 $scope.newItem = <\/span><span style=\"font-weight: 400;\">''<\/span><span style=\"font-weight: 400;\">;<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 }<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 };<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 });<\/span>\r\n<span style=\"font-weight: 400;\">\u00a0 \u00a0 <\/span><span style=\"font-weight: 400;\">&lt;\/<\/span><b>script<\/b><span style=\"font-weight: 400;\">&gt;<\/span>\r\n<span style=\"font-weight: 400;\">&lt;\/<\/span><b>body<\/b><span style=\"font-weight: 400;\">&gt;<\/span>\r\n<span style=\"font-weight: 400;\">&lt;\/<\/span><b>html<\/b><span style=\"font-weight: 400;\">&gt;<\/span><\/pre>\n<blockquote><p><span style=\"font-weight: 400;\"><strong>L\u01b0u \u00fd quan tr\u1ecdng:<\/strong><\/span><\/p>\n<p><span style=\"font-weight: 400;\">AngularJS (Angular 1.x) \u0111\u00e3 kh\u00f4ng c\u00f2n \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n t\u00edch c\u1ef1c v\u00e0 \u0111\u00e3 \u0111i v\u00e0o giai \u0111o\u1ea1n Long Term Support (LTS) k\u1ebft th\u00fac v\u00e0o ng\u00e0y 31 th\u00e1ng 12 n\u0103m 2021. \u0110\u1ed1i v\u1edbi c\u00e1c d\u1ef1 \u00e1n m\u1edbi, n\u00ean s\u1eed d\u1ee5ng Angular (phi\u00ean b\u1ea3n 2+) thay v\u00ec AngularJS. Angular hi\u1ec7n \u0111\u1ea1i cung c\u1ea5p hi\u1ec7u su\u1ea5t t\u1ed1t h\u01a1n, ki\u1ebfn tr\u00fac component-based, v\u00e0 nhi\u1ec1u t\u00ednh n\u0103ng c\u1ea3i ti\u1ebfn kh\u00e1c.<\/span><\/p><\/blockquote>\n<p><span style=\"font-weight: 400;\">M\u1ed9t s\u1ed1 \u0111i\u1ec3m n\u1ed5i b\u1eadt c\u1ee7a AngularJS nh\u01b0:\u00a0<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Ki\u1ebfn tr\u00fac MVC:<\/b><span style=\"font-weight: 400;\"> T\u00e1ch \u1ee9ng d\u1ee5ng th\u00e0nh ba ph\u1ea7n ch\u1ee9c n\u0103ng ri\u00eang bi\u1ec7t, gi\u00fap c\u1ea5u tr\u00fac code r\u00f5 r\u00e0ng v\u00e0 d\u1ec5 qu\u1ea3n l\u00fd h\u01a1n.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Li\u00ean k\u1ebft d\u1eef li\u1ec7u hai chi\u1ec1u (two-way data binding):<\/b><span style=\"font-weight: 400;\"> Cho ph\u00e9p \u0111\u1ed3ng b\u1ed9 h\u00f3a t\u1ef1 \u0111\u1ed9ng gi\u1eefa model v\u00e0 view, gi\u1ea3m \u0111\u00e1ng k\u1ec3 l\u01b0\u1ee3ng code c\u1ea7n vi\u1ebft \u0111\u1ec3 c\u1eadp nh\u1eadt UI.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Ch\u1ec9 th\u1ecb (directive):<\/b><span style=\"font-weight: 400;\"> C\u00e1c th\u1ebb HTML gi\u00fap t\u0103ng c\u01b0\u1eddng ch\u1ee9c n\u0103ng c\u1ee7a c\u00e1c ph\u1ea7n t\u1eed v\u00e0 t\u1ea1o ra c\u00e1c th\u00e0nh ph\u1ea7n c\u00f3 th\u1ec3 t\u00e1i s\u1eed d\u1ee5ng.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Dependency Injection:<\/b><span style=\"font-weight: 400;\"> Qu\u1ea3n l\u00fd ph\u1ee5 thu\u1ed9c c\u1ee7a c\u00e1c th\u00e0nh ph\u1ea7n kh\u00e1c nhau, c\u1ea3i thi\u1ec7n t\u00ednh module v\u00e0 th\u1eed nghi\u1ec7m m\u00e3.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>\u0110\u1ecbnh tuy\u1ebfn (Routing): <\/b><span style=\"font-weight: 400;\">H\u1ed7 tr\u1ee3 \u0111\u1ecbnh tuy\u1ebfn client-side, cho ph\u00e9p x\u00e2y d\u1ef1ng c\u00e1c \u1ee9ng d\u1ee5ng Single Page Application (SPA) v\u1edbi nhi\u1ec1u view kh\u00e1c nhau.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Filters:<\/b><span style=\"font-weight: 400;\"> Cho ph\u00e9p \u0111\u1ecbnh d\u1ea1ng d\u1eef li\u1ec7u tr\u01b0\u1edbc khi hi\u1ec3n th\u1ecb tr\u00ean giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Services: <\/b><span style=\"font-weight: 400;\">Cung c\u1ea5p c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng singleton \u0111\u1ec3 chia s\u1ebb d\u1eef li\u1ec7u v\u00e0 logic gi\u1eefa c\u00e1c controller.<\/span><\/li>\n<\/ul>\n<blockquote><p><em>\u0110\u1ecdc th\u00eam: <a href=\"https:\/\/itviec.com\/blog\/angularjs-la-gi\/\" target=\"_blank\" rel=\"noopener\"><strong>AngularJS l\u00e0 g\u00ec: \u0110\u1ecbnh ngh\u0129a, C\u00e1ch ho\u1ea1t \u0111\u1ed9ng v\u00e0 T\u00ednh n\u0103ng<\/strong><\/a><\/em><\/p><\/blockquote>\n<h2><span class=\"ez-toc-section\" id=\"Su_khac_nhau_giua_Angular_vs_AngularJS_theo_nhieu_tieu_chi\"><\/span><b>S\u1ef1 kh\u00e1c nhau gi\u1eefa Angular vs AngularJS theo nhi\u1ec1u ti\u00eau ch\u00ed<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><b>So s\u00e1nh Angular vs AngularJS theo Ki\u1ebfn tr\u00fac (Architecture)<\/b><\/h3>\n<p><span style=\"font-weight: 400;\"><strong>AngularJS<\/strong> s\u1eed d\u1ee5ng ki\u1ebfn tr\u00fac MVC l\u00e0 th\u00e0nh ph\u1ea7n trung t\u00e2m h\u1ed7 tr\u1ee3 qu\u1ea3n l\u00fd d\u1eef li\u1ec7u, quy t\u1eafc, logic, \u0111\u1ed3ng th\u1eddi th\u1ec3 hi\u1ec7n c\u00e1ch \u1ee9ng d\u1ee5ng ho\u1ea1t \u0111\u1ed9ng. V\u1edbi h\u1ec7 th\u1ed1ng n\u00e0y, b\u1ea1n nh\u1eadp logic v\u00e0o m\u00f4 h\u00ecnh v\u00e0 \u0111\u1ea7u ra mong mu\u1ed1n v\u00e0o b\u1ed9 \u0111i\u1ec1u khi\u1ec3n (controller). AngularJS s\u1ebd nh\u1eadn \u0111\u1ea7u v\u00e0o, chuy\u1ec3n \u0111\u1ed5i th\u00e0nh l\u1ec7nh v\u00e0 g\u1eedi \u0111\u1ebfn m\u00f4 h\u00ecnh (model) v\u00e0 ch\u1ebf \u0111\u1ed9 xem (view).<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Angular<\/strong> s\u1eed d\u1ee5ng c\u00e1c th\u00e0nh ph\u1ea7n (components) v\u00e0 ch\u1ec9 th\u1ecb (directives) tu\u00e2n theo c\u00e1c m\u1eabu \u0111\u01b0\u1ee3c x\u00e1c \u0111\u1ecbnh tr\u01b0\u1edbc \u0111\u1ec3 \u0111\u01a1n gi\u1ea3n h\u00f3a quy tr\u00ecnh. Framework s\u1eed d\u1ee5ng c\u00e1c ch\u1ec9 th\u1ecb c\u1ea5u tr\u00fac thay th\u1ebf ph\u1ea7n t\u1eed \u0111\u1ec3 thay \u0111\u1ed5i b\u1ed1 c\u1ee5c c\u1ee7a DOM v\u00e0 c\u00e1c ch\u1ec9 th\u1ecb thu\u1ed9c t\u00ednh thay \u0111\u1ed5i c\u00e1ch ho\u1ea1t \u0111\u1ed9ng c\u1ee7a m\u00f4 h\u00ecnh \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o nh\u1eadn \u0111\u01b0\u1ee3c \u0111\u1ea7u ra ch\u00ednh x\u00e1c,\u00a0<\/span><\/p>\n<h3><b>So s\u00e1nh Angular vs AngularJS theo \u0110\u1ecbnh tuy\u1ebfn (Routing)<\/b><\/h3>\n<p><span style=\"font-weight: 400;\"><strong>AngularJS<\/strong> s\u1eed d\u1ee5ng module ngRoute v\u00e0 service $routeProvider \u0111\u1ec3 c\u1ea5u h\u00ecnh \u0111\u1ecbnh tuy\u1ebfn<\/span><span style=\"font-weight: 400;\">, trong khi Angular s\u1eed d\u1ee5ng module @angular\/router \u0111\u1ed9c l\u1eadp. Angular framework cung c\u1ea5p \u0111\u1ecbnh tuy\u1ebfn tr\u1ef1c ti\u1ebfp, di\u1ec5n gi\u1ea3i URL th\u00e0nh m\u1ed9t ch\u1ec9 th\u1ecb, cho ph\u00e9p n\u00f3 d\u1ec5 d\u00e0ng \u0111i\u1ec1u h\u01b0\u1edbng m\u1ed9t \u0111\u01b0\u1eddng d\u1eabn \u0111\u01a1n gi\u1ea3n \u0111\u1ebfn ch\u1ebf \u0111\u1ed9 xem c\u1ee7a m\u00e1y kh\u00e1ch (client-server).<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>AngularJS<\/strong> c\u00f3 \u0111\u1ecbnh tuy\u1ebfn t\u00edch h\u1ee3p (ngRoute) ch\u1ecbu tr\u00e1ch nhi\u1ec7m kh\u1edfi t\u1ea1o c\u00e1c b\u1ed9 \u0111i\u1ec1u khi\u1ec3n kh\u1edbp v\u1edbi tuy\u1ebfn \u1ee9ng d\u1ee5ng kh\u1ea3 d\u1ee5ng. B\u1ed9 \u0111i\u1ec1u khi\u1ec3n l\u00e0 c\u00e1c ph\u1ea7n c\u1ee7a \u1ee9ng d\u1ee5ng t\u01b0\u01a1ng t\u00e1c v\u1edbi c\u01a1 s\u1edf d\u1eef li\u1ec7u, trong khi \u0111\u1ecbnh tuy\u1ebfn x\u00e1c \u0111\u1ecbnh c\u00e1c URL \u1ee9ng d\u1ee5ng.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Angular (phi\u00ean b\u1ea3n 2+) c\u00f3 m\u1ed9t module \u0111\u1ecbnh tuy\u1ebfn ri\u00eang bi\u1ec7t v\u00e0 m\u1ea1nh m\u1ebd h\u01a1n (@angular\/router), c\u00f4 \u0111\u1ecdng c\u00e1c tuy\u1ebfn \u1ee9ng d\u1ee5ng.\u00a0 C\u1ea3 hai framework \u0111\u1ec1u h\u1ed7 tr\u1ee3 vi\u1ec7c t\u1ea1o ra c\u00e1c \u1ee9ng d\u1ee5ng Single Page Application (SPA) v\u1edbi nhi\u1ec1u view \u0111\u1ed9ng, cho ph\u00e9p c\u1eadp nh\u1eadt n\u1ed9i dung (nh\u01b0 profile ng\u01b0\u1eddi d\u00f9ng) m\u00e0 kh\u00f4ng c\u1ea7n t\u1ea3i l\u1ea1i to\u00e0n b\u1ed9 trang.<\/span><\/p>\n<h3><b>So s\u00e1nh Angular vs AngularJS theo Qu\u1ea3n l\u00fd (Management)<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">C\u00f3 th\u1ec3 c\u1ea7n nhi\u1ec1u k\u1ef9 n\u0103ng h\u01a1n \u0111\u1ec3 qu\u1ea3n l\u00fd <strong>AngularJS<\/strong>, \u0111\u1eb7c bi\u1ec7t l\u00e0 khi t\u0103ng k\u00edch th\u01b0\u1edbc c\u1ee7a m\u00e3 ngu\u1ed3n. B\u1ea1n c\u00f3 th\u1ec3 th\u1ea5y AngularJS d\u1ec5 s\u1eed d\u1ee5ng h\u01a1n trong c\u00e1c \u1ee9ng d\u1ee5ng t\u1ed1i thi\u1ec3u v\u00ec l\u00fd do n\u00e0y.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Angular<\/strong> th\u01b0\u1eddng c\u00f3 c\u1ea5u tr\u00fac \u0111\u01a1n gi\u1ea3n h\u01a1n, c\u00f3 th\u1ec3 gi\u00fap qu\u1ea3n l\u00fd v\u00e0 t\u1ea1o c\u00e1c \u1ee9ng d\u1ee5ng, m\u00e3 ngu\u1ed3n l\u1edbn d\u1ec5 d\u00e0ng h\u01a1n.<\/span><\/p>\n<h3><b>So s\u00e1nh Angular vs AngularJS theo Th\u00e0nh ph\u1ea7n (Components)<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Angular vs AngularJS c\u00f3 th\u00e0nh ph\u1ea7n kh\u00e1c nhau d\u1ef1a tr\u00ean c\u01a1 s\u1edf ng\u00f4n ng\u1eef c\u1ee7a ch\u00fang. <strong>Angular<\/strong> d\u1ef1a tr\u00ean th\u00e0nh ph\u1ea7n v\u1edbi h\u1ec7 th\u1ed1ng ph\u00e2n c\u1ea5p th\u00e0nh ph\u1ea7n, trong khi <strong>AngularJS<\/strong> s\u1eed d\u1ee5ng ch\u1ec9 th\u1ecb (directives). TypeScript v\u1edbi ES6 v\u00e0 kh\u1ea3 n\u0103ng t\u01b0\u01a1ng th\u00edch ng\u01b0\u1ee3c v\u1edbi ES5, hai ng\u00f4n ng\u1eef d\u1ef1a tr\u00ean Java c\u00f3 trong Angular. C\u00f4ng c\u1ee5 d\u1ef1a tr\u00ean JavaScript bao g\u1ed3m c\u00e1c b\u1ed9 \u0111i\u1ec1u khi\u1ec3n \u1ee9ng d\u1ee5ng qu\u1ea3n l\u00fd t\u01b0\u01a1ng t\u00e1c v\u1edbi c\u01a1 s\u1edf d\u1eef li\u1ec7u, c\u00f3 th\u1ec3 gi\u00fap m\u00e3 h\u00f3a d\u1ec5 d\u00e0ng h\u01a1n.<\/span><\/p>\n<h3><b>So s\u00e1nh Angular vs AngularJS theo Ng\u00f4n ng\u1eef<\/b><\/h3>\n<p><span style=\"font-weight: 400;\"><strong>AngularJS<\/strong> l\u00e0 n\u1ec1n t\u1ea3ng d\u1ef1a tr\u00ean JavaScript, ngh\u0129a l\u00e0 \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng d\u1ef1a tr\u00ean ng\u00f4n ng\u1eef JavaScript, trong khi Angular l\u00e0 n\u1ec1n t\u1ea3ng d\u1ef1a tr\u00ean TypeScript. JavaScript l\u00e0 m\u1ed9t trong nh\u1eefng ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng ph\u1ed5 bi\u1ebfn nh\u1ea5t, do \u0111\u00f3 AngularJS d\u1ec5 d\u00e0ng ti\u1ebfp c\u1eadn h\u01a1n v\u1edbi nhi\u1ec1u developers.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Angular<\/strong> c\u0169ng bao g\u1ed3m c\u00e1c l\u1ef1a ch\u1ecdn ng\u00f4n ng\u1eef kh\u00e1c \u0111\u1ec3 vi\u1ebft m\u00e3, ch\u1eb3ng h\u1ea1n nh\u01b0 Dart, ES5 v\u00e0 ES6. \u0110i\u1ec1u n\u00e0y c\u00f3 th\u1ec3 \u0111\u01a1n gi\u1ea3n h\u00f3a qu\u00e1 tr\u00ecnh l\u1eadp tr\u00ecnh cho developers tr\u00ean Angular v\u00e0 cho ph\u00e9p h\u1ecd t\u1ed1i \u01b0u h\u00f3a ch\u01b0\u01a1ng tr\u00ecnh c\u1ee7a m\u00ecnh.<\/span><\/p>\n<h3><b>So s\u00e1nh Angular vs AngularJS theo Ch\u1ec9 th\u1ecb (Directives)<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">C\u1ea3 <strong>Angular<\/strong> v\u00e0 <strong>AngularJS<\/strong> \u0111\u1ec1u s\u1eed d\u1ee5ng c\u00e1c ch\u1ec9 th\u1ecb l\u00e0 d\u1ea5u hi\u1ec7u tr\u00ean m\u1ed9t ph\u1ea7n t\u1eed DOM cho bi\u1ebft framework kh\u00f4ng ph\u1ea3i g\u1eafn m\u1ed9t h\u00e0nh vi \u0111\u01b0\u1ee3c ch\u1ec9 \u0111\u1ecbnh v\u00e0o ph\u1ea7n t\u1eed. Angular framework c\u00f3 ch\u1ec9 th\u1ecb chu\u1ea9n, trong khi AngularJS s\u1eed d\u1ee5ng nhi\u1ec1u ch\u1ec9 th\u1ecb. Developers c\u0169ng c\u00f3 th\u1ec3 ch\u1ec9 \u0111\u1ecbnh c\u00e1c ch\u1ec9 th\u1ecb c\u1ee7a kh\u00e1ch h\u00e0ng trong AngularJS.\u00a0<\/span><\/p>\n<h3><b>So s\u00e1nh Angular vs AngularJS theo Hi\u1ec7u su\u1ea5t v\u00e0 t\u1ed1c \u0111\u1ed9 (Performance &amp; Speed)<\/b><\/h3>\n<p><span style=\"font-weight: 400;\"><strong>Angular<\/strong> framework cung c\u1ea5p c\u1ea5u tr\u00fac t\u1ed1t h\u01a1n, c\u00f3 th\u1ec3 gi\u00fap c\u1ea3i thi\u1ec7n hi\u1ec7u su\u1ea5t v\u00e0 t\u1ed1c \u0111\u1ed9. Angular c\u00f3 th\u1ec3 t\u1ea1o v\u00e0 duy tr\u00ec c\u00e1c \u1ee9ng d\u1ee5ng l\u1edbn m\u1ed9t c\u00e1ch hi\u1ec7u qu\u1ea3 h\u01a1n.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Trong khi \u0111\u00f3, c\u00e1c t\u00ednh n\u0103ng r\u00e0ng bu\u1ed9c hai chi\u1ec1u c\u1ee7a <strong>AngularJS<\/strong> gi\u00fap gi\u1ea3m c\u00f4ng s\u1ee9c, th\u1eddi gian x\u00e2y d\u1ef1ng, c\u1ea3i thi\u1ec7n t\u1ed1c \u0111\u1ed9 v\u00e0 hi\u1ec7u su\u1ea5t. T\u00ednh n\u0103ng n\u00e0y c\u0169ng c\u00f3 th\u1ec3 y\u00eau c\u1ea7u x\u1eed l\u00fd nhi\u1ec1u h\u01a1n \u1edf kh\u00eda c\u1ea1nh ph\u00eda m\u00e1y kh\u00e1ch (client-side), d\u1eabn \u0111\u1ebfn th\u1eddi gian t\u1ea3i trang l\u00e2u h\u01a1n.<\/span><\/p>\n<h3><b>So s\u00e1nh Angular vs AngularJS theo C\u00f4ng c\u1ee5 h\u1ed7 tr\u1ee3<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">AngularJS v\u00e0 Angular \u0111\u1ec1u s\u1eed d\u1ee5ng c\u00f4ng c\u1ee5 h\u1ed7 tr\u1ee3 \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o ho\u1ea1t \u0111\u1ed9ng di\u1ec5n ra b\u00ecnh th\u01b0\u1eddng. <strong>AngularJS<\/strong> s\u1eed d\u1ee5ng c\u00f4ng c\u1ee5 c\u1ee7a b\u00ean th\u1ee9 ba nh\u01b0 m\u00f4i tr\u01b0\u1eddng ph\u00e1t tri\u1ec3n (development environments) \u0111\u1ec3 h\u1ed7 tr\u1ee3 framework.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Trong khi \u0111\u00f3, <strong>Angular<\/strong> gi\u1ea3m th\u1eddi gian t\u1ea1o \u1ee9ng d\u1ee5ng web th\u00f4ng qua command-line s\u1eed d\u1ee5ng Angular CLI (giao di\u1ec7n d\u00f2ng l\u1ec7nh) b\u1eb1ng c\u00e1ch h\u1ed7 tr\u1ee3 framework \u0111\u1ed3 h\u1ecda.\u00a0<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"So_sanh_nhanh_Angular_vs_AngularJS\"><\/span><b> So s\u00e1nh nhanh Angular vs AngularJS<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">D\u01b0\u1edbi \u0111\u00e2y l\u00e0 b\u1ea3ng t\u1ed5ng h\u1ee3p nhanh v\u1ec1 \u0111i\u1ec3m kh\u00e1c bi\u1ec7t gi\u1eefa Angular v\u00e0 AngularJS:<\/span><\/p>\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td><b>AngularJS<\/b><\/td>\n<td><b>Angular<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Ki\u1ebfn tr\u00fac<\/span><\/td>\n<td><span style=\"font-weight: 400;\">MVC (Model-View-Controller) gi\u00fap x\u1eed l\u00fd th\u00f4ng tin c\u00f3 s\u1eb5n trong model \u0111\u1ec3 t\u1ea1o \u0111\u1ea7u ra<\/span><\/td>\n<td><span style=\"font-weight: 400;\">S\u1eed d\u1ee5ng c\u00e1c th\u00e0nh ph\u1ea7n (Component-based) v\u00e0 ch\u1ec9 th\u1ecb (directives), c\u00e1c th\u00e0nh ph\u1ea7n l\u00e0 c\u00e1c ch\u1ec9 th\u1ecb c\u00f3 m\u1eabu<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Ng\u00f4n ng\u1eef<\/span><\/td>\n<td><span style=\"font-weight: 400;\">JavaScript<\/span><\/td>\n<td><span style=\"font-weight: 400;\">TypeScript c\u1ee7a Microsoft, l\u00e0 m\u1ed9t ph\u1ea7n nh\u1ecf c\u1ee7a ECMAScript 6 (ES6)<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">H\u1ed7 tr\u1ee3 di \u0111\u1ed9ng<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Kh\u00f4ng h\u1ed7 tr\u1ee3 tr\u00ecnh duy\u1ec7t di \u0111\u1ed9ng<\/span><\/td>\n<td><span style=\"font-weight: 400;\">\u0110\u01b0\u1ee3c h\u1ed7 tr\u1ee3 b\u1edfi t\u1ea5t c\u1ea3 c\u00e1c tr\u00ecnh duy\u1ec7t di \u0111\u1ed9ng ph\u1ed5 bi\u1ebfn<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">C\u00fa ph\u00e1p<\/span><\/td>\n<td><span style=\"font-weight: 400;\">S\u1eed d\u1ee5ng scope v\u00e0 controllers<\/span><\/td>\n<td><span style=\"font-weight: 400;\">S\u1eed d\u1ee5ng components v\u00e0 services<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Ng\u00f4n ng\u1eef \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Ch\u1ec9 h\u1ed7 tr\u1ee3 JavaScript<\/span><\/td>\n<td><span style=\"font-weight: 400;\">H\u1ed7 tr\u1ee3 cho TypeScript, JavaScript v\u00e0 Dart.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">\u0110\u1ecbnh tuy\u1ebfn<\/span><\/td>\n<td><span style=\"font-weight: 400;\">ngRoute module<\/span><\/td>\n<td><span style=\"font-weight: 400;\">@angular\/router module (m\u1ea1nh m\u1ebd h\u01a1n)<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">C\u1ea5u tr\u00fac<\/span><\/td>\n<td><span style=\"font-weight: 400;\">D\u1ec5 h\u01a1n qu\u1ea3n l\u00fd h\u01a1n so v\u1edbi Angular<\/span><\/td>\n<td><span style=\"font-weight: 400;\">C\u1ea5u tr\u00fac t\u1ed1t h\u01a1n AngularJS, d\u1ec5 t\u1ea1o v\u00e0 b\u1ea3o tr\u00ec h\u01a1n cho c\u00e1c \u1ee9ng d\u1ee5ng l\u1edbn.\u00a0<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">CLI<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Kh\u00f4ng \u0111i k\u00e8m v\u1edbi c\u00f4ng c\u1ee5 CLI<\/span><\/td>\n<td><span style=\"font-weight: 400;\">\u0110i k\u00e8m v\u1edbi c\u00f4ng c\u1ee5 Angular CLI<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">V\u00ed d\u1ee5, \u1ee9ng d\u1ee5ng<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Trang web ch\u00ednh th\u1ee9c c\u1ee7a iStock, Netflix ho\u1eb7c AngularJS<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Upwork, Gmail hay Wikiwand<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><span class=\"ez-toc-section\" id=\"Cac_cau_hoi_thuong_gap_ve_Angular_vs_AngularJS\"><\/span><b>C\u00e1c c\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 Angular vs AngularJS<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><b>Angular c\u00f3 t\u1ed1t h\u01a1n AngularJS kh\u00f4ng?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Angular cho ph\u00e9p c\u1ea3i thi\u1ec7n c\u00e1c thu\u1eadt to\u00e1n \u0111\u1ec3 li\u00ean k\u1ebft d\u1eef li\u1ec7u, n\u00f3 c\u00f3 th\u1ec3 d\u1ef1a tr\u00ean c\u00e1c th\u00e0nh ph\u1ea7n (components). Ng\u01b0\u1ee3c l\u1ea1i, AngularJS c\u00f3 thu\u1ed9c t\u00ednh li\u00ean k\u1ebft d\u1eef li\u1ec7u hai chi\u1ec1u cho ph\u00e9p r\u00e0ng bu\u1ed9c nhanh v\u00e0 d\u1ec5 d\u00e0ng h\u01a1n m\u00e0 kh\u00f4ng c\u1ea7n s\u1ef1 can thi\u1ec7p c\u1ee7a chuy\u00ean gia.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Trong c\u00e1c d\u1ef1 \u00e1n Angular kh\u00e1 ph\u1ee9c t\u1ea1p v\u00e0 \u0111\u1ed9c l\u1eadp trong khi AngularJS \u0111\u01b0\u1ee3c khuy\u1ebfn kh\u00edch \u0111\u1ec3 vi\u1ebft m\u00e3 nhanh ch\u00f3ng h\u01a1n. V\u00ec v\u1eady, theo nhu c\u1ea7u c\u1ee7a m\u1ed7i ng\u01b0\u1eddi ho\u1eb7c t\u00ednh ch\u1ea5t c\u1ee7a d\u1ef1 \u00e1n m\u00e0 Angular ho\u1eb7c AngularJS s\u1ebd \u0111\u1ea1t hi\u1ec7u qu\u1ea3 t\u1ed1t h\u01a1n.<\/span><\/p>\n<h3><b>\u1ee8ng d\u1ee5ng c\u1ee7a AngularJS l\u00e0 g\u00ec?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">AngularJS l\u00e0 web framework ph\u1ed5 bi\u1ebfn \u0111\u01b0\u1ee3c d\u00f9ng \u0111\u1ec3 x\u00e2y d\u1ef1ng m\u1ed9t s\u1ed1 \u1ee9ng d\u1ee5ng nh\u01b0 th\u1eddi ti\u1ebft, e-commerce, livestream video, du l\u1ecbch hay \u0111\u00e1nh gi\u00e1 tr\u1ea3i nghi\u1ec7m ng\u01b0\u1eddi d\u00f9ng. <\/span><span style=\"font-weight: 400;\">The Guardian, Upwork, PayPal, Freelancer, Netflix, LinkedIn,\u2026 l\u00e0 c\u00e1c \u1ee9ng d\u1ee5ng ph\u1ed5 bi\u1ebfn \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n b\u1eb1ng AngularJS<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Tong_ket_ve_Angular_vs_AngularJS\"><\/span><b>T\u1ed5ng k\u1ebft v\u1ec1 Angular vs AngularJS<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Nh\u00ecn chung, <\/span><b>Angular vs AngularJS<\/b><span style=\"font-weight: 400;\"> \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng v\u1edbi m\u1ee5c \u0111\u00edch, nhu c\u1ea7u v\u00e0 quy m\u00f4 d\u1ef1 \u00e1n kh\u00e1c nhau. Trong khi AngularJS ph\u00f9 h\u1ee3p v\u1edbi c\u00e1c d\u1ef1 \u00e1n nh\u1ecf th\u00ec Angular \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf cho c\u00e1c \u1ee9ng d\u1ee5ng hi\u1ec7n \u0111\u1ea1i c\u00f9ng quy m\u00f4 l\u1edbn. Vi\u1ec7c l\u1ef1a ch\u1ecdn s\u1eed d\u1ee5ng Angular hay AngularJS s\u1ebd t\u00f9y thu\u1ed9c v\u00e0o t\u00ednh ch\u1ea5t c\u1ee7a projects c\u0169ng nh\u01b0 nhau c\u1ea7u c\u1ee7a b\u1ea1n. Theo d\u00f5i ITviec Blog \u0111\u1ec3 \u0111\u01b0\u1ee3c c\u1eadp nh\u1eadt nhanh nh\u1ea5t xu h\u01b0\u1edbng C\u00f4ng ngh\u1ec7 th\u00f4ng tin hi\u1ec7n nay nh\u00e9!<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Angular v\u00e0 AngularJS l\u00e0 hai framework ph\u1ed5 bi\u1ebfn \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 x\u00e2y d\u1ef1ng c\u00e1c trang web v\u1edbi hi\u1ec7u \u1ee9ng \u0111\u1ed9ng. M\u1eb7c d\u00f9 \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n b\u1edfi Google nh\u01b0ng ch\u00fang v\u1eabn c\u00f3 m\u1ed9t s\u1ed1 \u0111i\u1ec3m kh\u00e1c nhau v\u1ec1 ki\u1ebfn tr\u00fac, t\u00ednh n\u0103ng c\u0169ng nh\u01b0 hi\u1ec7u su\u1ea5t. B\u00e0i vi\u1ebft so s\u00e1nh chi ti\u1ebft Angular vs AngularJS [&hellip;]<\/p>\n","protected":false},"author":207,"featured_media":81012,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_gspb_post_css":"","footnotes":""},"categories":[109],"tags":[],"class_list":["post-80207","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-chuyen-mon-it"],"blocksy_meta":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.8 (Yoast SEO v28.0) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Angular vs AngularJS: So s\u00e1nh nh\u1eefng \u0111i\u1ec3m kh\u00e1c nhau quan tr\u1ecdng - ITviec Blog<\/title>\n<meta name=\"description\" content=\"M\u1eb7c d\u00f9 \u0111\u1ec1u \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n b\u1edfi Google nh\u01b0ng Angular vs AngularJS v\u1eabn c\u00f3 m\u1ed9t s\u1ed1 \u0111i\u1ec3m kh\u00e1c nhau v\u1ec1 ki\u1ebfn tr\u00fac, t\u00ednh n\u0103ng c\u0169ng nh\u01b0 hi\u1ec7u su\u1ea5t,...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/itviec.com\/blog\/so-sanh-angular-vs-angularjs\/\" \/>\n<meta property=\"og:locale\" content=\"vi_VN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Angular vs AngularJS: So s\u00e1nh nh\u1eefng \u0111i\u1ec3m kh\u00e1c nhau quan tr\u1ecdng\" \/>\n<meta property=\"og:description\" content=\"Angular v\u00e0 AngularJS l\u00e0 hai framework ph\u1ed5 bi\u1ebfn \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 x\u00e2y d\u1ef1ng c\u00e1c trang web v\u1edbi hi\u1ec7u \u1ee9ng \u0111\u1ed9ng. M\u1eb7c d\u00f9 \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n b\u1edfi Google nh\u01b0ng ch\u00fang v\u1eabn\" \/>\n<meta property=\"og:url\" content=\"https:\/\/itviec.com\/blog\/so-sanh-angular-vs-angularjs\/\" \/>\n<meta property=\"og:site_name\" content=\"ITviec Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ITviec\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:25:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/10\/Angular-vs-AngularJS-vippro.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1500\" \/>\n\t<meta property=\"og:image:height\" content=\"790\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Uyen Ngo\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ITviec\" \/>\n<meta name=\"twitter:site\" content=\"@ITviec\" \/>\n<meta name=\"twitter:label1\" content=\"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi\" \/>\n\t<meta name=\"twitter:data1\" content=\"Uyen Ngo\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 ph\u00fat\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Angular vs AngularJS: So s\u00e1nh nh\u1eefng \u0111i\u1ec3m kh\u00e1c nhau quan tr\u1ecdng - ITviec Blog","description":"M\u1eb7c d\u00f9 \u0111\u1ec1u \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n b\u1edfi Google nh\u01b0ng Angular vs AngularJS v\u1eabn c\u00f3 m\u1ed9t s\u1ed1 \u0111i\u1ec3m kh\u00e1c nhau v\u1ec1 ki\u1ebfn tr\u00fac, t\u00ednh n\u0103ng c\u0169ng nh\u01b0 hi\u1ec7u su\u1ea5t,...","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/itviec.com\/blog\/so-sanh-angular-vs-angularjs\/","og_locale":"vi_VN","og_type":"article","og_title":"Angular vs AngularJS: So s\u00e1nh nh\u1eefng \u0111i\u1ec3m kh\u00e1c nhau quan tr\u1ecdng","og_description":"Angular v\u00e0 AngularJS l\u00e0 hai framework ph\u1ed5 bi\u1ebfn \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 x\u00e2y d\u1ef1ng c\u00e1c trang web v\u1edbi hi\u1ec7u \u1ee9ng \u0111\u1ed9ng. M\u1eb7c d\u00f9 \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n b\u1edfi Google nh\u01b0ng ch\u00fang v\u1eabn","og_url":"https:\/\/itviec.com\/blog\/so-sanh-angular-vs-angularjs\/","og_site_name":"ITviec Blog","article_publisher":"https:\/\/www.facebook.com\/ITviec","article_published_time":"2024-11-01T09:25:51+00:00","og_image":[{"width":1500,"height":790,"url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/10\/Angular-vs-AngularJS-vippro.jpg","type":"image\/jpeg"}],"author":"Uyen Ngo","twitter_card":"summary_large_image","twitter_creator":"@ITviec","twitter_site":"@ITviec","twitter_misc":{"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi":"Uyen Ngo","\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc":"12 ph\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/itviec.com\/blog\/so-sanh-angular-vs-angularjs\/#article","isPartOf":{"@id":"https:\/\/itviec.com\/blog\/so-sanh-angular-vs-angularjs\/"},"author":{"name":"Uyen Ngo","@id":"https:\/\/itviec.com\/blog\/#\/schema\/person\/f4cd1226846e0258c664e170d3e52d20"},"headline":"Angular vs AngularJS: So s\u00e1nh nh\u1eefng \u0111i\u1ec3m kh\u00e1c nhau quan tr\u1ecdng","datePublished":"2024-11-01T09:25:51+00:00","mainEntityOfPage":{"@id":"https:\/\/itviec.com\/blog\/so-sanh-angular-vs-angularjs\/"},"wordCount":3161,"publisher":{"@id":"https:\/\/itviec.com\/blog\/#organization"},"image":{"@id":"https:\/\/itviec.com\/blog\/so-sanh-angular-vs-angularjs\/#primaryimage"},"thumbnailUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/10\/Angular-vs-AngularJS-vippro.jpg","articleSection":["Chuy\u00ean m\u00f4n IT"],"inLanguage":"vi"},{"@type":"WebPage","@id":"https:\/\/itviec.com\/blog\/so-sanh-angular-vs-angularjs\/","url":"https:\/\/itviec.com\/blog\/so-sanh-angular-vs-angularjs\/","name":"Angular vs AngularJS: So s\u00e1nh nh\u1eefng \u0111i\u1ec3m kh\u00e1c nhau quan tr\u1ecdng - ITviec Blog","isPartOf":{"@id":"https:\/\/itviec.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/itviec.com\/blog\/so-sanh-angular-vs-angularjs\/#primaryimage"},"image":{"@id":"https:\/\/itviec.com\/blog\/so-sanh-angular-vs-angularjs\/#primaryimage"},"thumbnailUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/10\/Angular-vs-AngularJS-vippro.jpg","datePublished":"2024-11-01T09:25:51+00:00","description":"M\u1eb7c d\u00f9 \u0111\u1ec1u \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n b\u1edfi Google nh\u01b0ng Angular vs AngularJS v\u1eabn c\u00f3 m\u1ed9t s\u1ed1 \u0111i\u1ec3m kh\u00e1c nhau v\u1ec1 ki\u1ebfn tr\u00fac, t\u00ednh n\u0103ng c\u0169ng nh\u01b0 hi\u1ec7u su\u1ea5t,...","breadcrumb":{"@id":"https:\/\/itviec.com\/blog\/so-sanh-angular-vs-angularjs\/#breadcrumb"},"inLanguage":"vi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/itviec.com\/blog\/so-sanh-angular-vs-angularjs\/"]}]},{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/so-sanh-angular-vs-angularjs\/#primaryimage","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/10\/Angular-vs-AngularJS-vippro.jpg","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/10\/Angular-vs-AngularJS-vippro.jpg","width":1500,"height":790,"caption":"Angular vs AngularJS - itviec blog"},{"@type":"BreadcrumbList","@id":"https:\/\/itviec.com\/blog\/so-sanh-angular-vs-angularjs\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Chuy\u00ean m\u00f4n IT","item":"https:\/\/itviec.com\/blog\/chuyen-mon-it\/"},{"@type":"ListItem","position":2,"name":"Angular vs AngularJS: So s\u00e1nh nh\u1eefng \u0111i\u1ec3m kh\u00e1c nhau quan tr\u1ecdng"}]},{"@type":"WebSite","@id":"https:\/\/itviec.com\/blog\/#website","url":"https:\/\/itviec.com\/blog\/","name":"ITviec Blog","description":"IT Jobs &amp; People in Vietnam","publisher":{"@id":"https:\/\/itviec.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/itviec.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"vi"},{"@type":"Organization","@id":"https:\/\/itviec.com\/blog\/#organization","name":"ITviec","url":"https:\/\/itviec.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2018\/12\/itviec-black-square-facebook.png","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2018\/12\/itviec-black-square-facebook.png","width":1800,"height":1800,"caption":"ITviec"},"image":{"@id":"https:\/\/itviec.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/ITviec","https:\/\/x.com\/ITviec","https:\/\/www.linkedin.com\/company\/itviec","https:\/\/www.youtube.com\/channel\/UCYthAQ3bcGr57M_ag5gHDvQ"]},{"@type":"Person","@id":"https:\/\/itviec.com\/blog\/#\/schema\/person\/f4cd1226846e0258c664e170d3e52d20","name":"Uyen Ngo","image":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/03\/ngo-thieu-my-uyen-author-e1709880420317-100x100.jpg","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/03\/ngo-thieu-my-uyen-author-e1709880420317-100x100.jpg","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/03\/ngo-thieu-my-uyen-author-e1709880420317-100x100.jpg","caption":"Uyen Ngo"},"url":"https:\/\/itviec.com\/blog\/author\/uyen-ngo\/"}]}},"_links":{"self":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/80207","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/users\/207"}],"replies":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/comments?post=80207"}],"version-history":[{"count":0,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/80207\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/media\/81012"}],"wp:attachment":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/media?parent=80207"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/categories?post=80207"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/tags?post=80207"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}