{"id":26744,"date":"2017-08-26T13:00:33","date_gmt":"2017-08-26T10:00:33","guid":{"rendered":"http:\/\/kamil-abzalov.com\/tutorials\/angular-js-modules-directives-controllers-expressions-mvc\/"},"modified":"2020-04-09T23:34:01","modified_gmt":"2020-04-09T20:34:01","slug":"angular-js-modules-directives-controllers-expressions-mvc","status":"publish","type":"post","link":"https:\/\/kamil-abzalov.com\/en\/tutorials\/javascript\/angular-js-modules-directives-controllers-expressions-mvc\/","title":{"rendered":"Angular js. Modules, directives, controllers, expressions, MVC"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; fullwidth=&#8221;on&#8221; _builder_version=&#8221;3.22&#8243;][et_pb_fullwidth_header title=&#8221;Angular js. Modules, directives, controllers, expressions, MVC&#8221; content_max_width=&#8221;none&#8221; _builder_version=&#8221;3.16&#8243; button_one_letter_spacing_hover=&#8221;0&#8243; button_two_letter_spacing_hover=&#8221;0&#8243; button_one_text_size__hover_enabled=&#8221;off&#8221; button_two_text_size__hover_enabled=&#8221;off&#8221; button_one_text_color__hover_enabled=&#8221;off&#8221; button_two_text_color__hover_enabled=&#8221;off&#8221; button_one_border_width__hover_enabled=&#8221;off&#8221; button_two_border_width__hover_enabled=&#8221;off&#8221; button_one_border_color__hover_enabled=&#8221;off&#8221; button_two_border_color__hover_enabled=&#8221;off&#8221; button_one_border_radius__hover_enabled=&#8221;off&#8221; button_two_border_radius__hover_enabled=&#8221;off&#8221; button_one_letter_spacing__hover_enabled=&#8221;on&#8221; button_one_letter_spacing__hover=&#8221;0&#8243; button_two_letter_spacing__hover_enabled=&#8221;on&#8221; button_two_letter_spacing__hover=&#8221;0&#8243; button_one_bg_color__hover_enabled=&#8221;off&#8221; button_two_bg_color__hover_enabled=&#8221;off&#8221;][\/et_pb_fullwidth_header][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; admin_label=&#8221;section&#8221; _builder_version=&#8221;3.22&#8243;][et_pb_row admin_label=&#8221;row&#8221; _builder_version=&#8221;3.25&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_padding=&#8221;0px|||&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_dcsbcm_divi_breadcrumbs_module homebreadcrumbtext=&#8221;Home&#8221; hide_currentbreadcrumb=&#8221;off&#8221; _builder_version=&#8221;4.4.2&#8243; custom_padding=&#8221;0px|||&#8221; hover_enabled=&#8221;0&#8243; fontsbreadcrumbs_font_size_tablet=&#8221;51&#8243; fontsbreadcrumbs_line_height_tablet=&#8221;2&#8243; fontsseperator_font_size_tablet=&#8221;51&#8243; fontsseperator_line_height_tablet=&#8221;2&#8243; fontsbreadcrumblinks_font_size_tablet=&#8221;51&#8243; fontsbreadcrumblinks_line_height_tablet=&#8221;2&#8243;][\/et_pb_dcsbcm_divi_breadcrumbs_module][et_pb_text _builder_version=&#8221;3.27.4&#8243; border_style=&#8221;solid&#8221;]In <a href=\"https:\/\/kamil-abzalov.com\/en\/tutorials\/intro-to-angular-js\/\">last lesson<\/a>. Today we begin to build simple angular app, while discussing the basic concepts &#8211; directives, modules, expressions, controllers, and shortly consider approach to build apps &#8211; MVC (Model-View-Controller).<br \/>\n[\/et_pb_text][et_pb_video src=&#8221;https:\/\/youtu.be\/ldDRfYdlaVg&#8221; _builder_version=&#8221;3.0.69&#8243;][\/et_pb_video][et_pb_text _builder_version=&#8221;3.27.4&#8243; border_style=&#8221;solid&#8221;]Let&#8217;s discuss key definitions of this lesson:<\/p>\n<ul>\n<li>Module initializes your app and is container of different app parts (for example, controllers).<\/li>\n<li>Directives are additional html tags attributes. They extend behavior \u0449\u0430 html. Angular has got a lot of build-in directives, but you also to define your custom directives. Directives begins from ng- suffix. For example, ng-app.<\/li>\n<li>Expressions bind data to html.<br \/>\n You can write arithmetic operations or call functions and so on. Expressions are written in double curly braces.<\/li>\n<\/ul>\n<p>Let&#8217;s consider MVC (Model View Controller). This approach implies separation of your app into three different large parts &#8211; Model, View, Controller. Each of them does its own task. Model gives data for rendering. View renders this data. Controller is connection link between model and view. It  passes data to model from view and vice versa. In angular controllers there are $scope. $scopre is simply javascript object. But in angular context $scope is really scope of variables. You can add new properties to $scope, which will be visible only in current $scope. Furthermore they will be visible only in controller, which $scope is defined.<br \/>\n[\/et_pb_text][et_pb_dmb_code_snippet title=&#8221;Code lesson&#8221; code=&#8221;PCEtLQogICAgKDEpIC0g0L\/RgNC+0LLQtdGA0LjQvCwg0YfRgtC+IGFuZ3VsYXIg0LfQsNC\/0YPRgdGC0LjQu9GB0Y8KICAgICgyKSAtINCy0YvRgNCw0LbQtdC90LjRjwogICAgKDMpIC0g0LzQvtC00YPQu9C4CiAgICAoNCkgLSDQtNC40YDQtdC60YLQuNCy0YsKLS0+CjwhRE9DVFlQRSBodG1sPgo8aHRtbCBuZy1hcHA9InBsYXllcnNBcHAiPiA8IS0tICg0KSAtLT4KICAgIDxoZWFkPgogICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KICAgICAgICA8dGl0bGU+PC90aXRsZT4KICAgICAgICA8bGluayBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjMuNy9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiIHJlbD0ic3R5bGVzaGVldCI+CiAgICA8L2hlYWQ+CiAgICA8Ym9keT4KCiAgICAgICAgPCEtLSAoMSkKICAgICAgICDQv9GA0L7QstC10YDQutCwLCDRh9GC0L4gYW5ndWxhciDQstGB0YLRg9C\/0LjQuyDQsiDQtNC10LvQvgogICAgICAgIDxwPnt7MSsyfX08L3A+CiAgICAgICAgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIiBuZy1jb250cm9sbGVyPSJwbGF5ZXJDdHJsIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0xMiI+CiAgICAgICAgICAgICAgICAgICAgPGZvcm0gY2xhc3M9ImZvcm0taG9yaXpvbnRhbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsZWdlbmQ+0KHQv9C40YHQvtC6INGE0YPRgtCx0L7Qu9C40YHRgtC+0LI8L2xlZ2VuZD4KICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9InBsYXllck5hbWUiIGNsYXNzPSJjb2wtc20tNCBjb250cm9sLWxhYmVsIj7QmNC80Y8g0LjQs9GA0L7QutCwPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS04Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5nLW1vZGVsPSJwbGF5ZXJOYW1lIiBjbGFzcz0iZm9ybS1jb250cm9sIiBpZD0icGxheWVyTmFtZSIgcGxhY2Vob2xkZXI9ItCY0LzRjyDQuNCz0YDQvtC60LAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJwbGF5ZXJUZWFtIiBjbGFzcz0iY29sLXNtLTQgY29udHJvbC1sYWJlbCI+0JIg0LrQsNC60L7QuSDQutC+0LzQsNC90LTQtSDQuNCz0YDQsNC10YI8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmctbW9kZWw9InBsYXllclRlYW0iIGNsYXNzPSJmb3JtLWNvbnRyb2wiIGlkPSJwbGF5ZXJUZWFtIiBwbGFjZWhvbGRlcj0i0JIg0LrQsNC60L7QuSDQutC+0LzQsNC90LTQtSDQuNCz0YDQsNC10YIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJwbGF5ZXJDb3VudHJ5IiBjbGFzcz0iY29sLXNtLTQgY29udHJvbC1sYWJlbCI+0JPRgNCw0LbQtNCw0L3RgdGC0LLQvjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tOCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuZy1tb2RlbD0icGxheWVyQ291bnRyeSIgY2xhc3M9ImZvcm0tY29udHJvbCIgaWQ9InBsYXllckNvdW50cnkiIHBsYWNlaG9sZGVyPSLQk9GA0LDQttC00LDQvdGB0YLQstC+Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tOCBjb2wtc20tb2Zmc2V0LTQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZy1jbGljaz0iYWRkUGxheWVyKCkiIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiPtCU0L7QsdCw0LLQuNGC0Yw8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTEyIj4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7QmNCz0YDQvtC6PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+0JrQvtC80LDQvdC00LA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7QndCw0YbQuNC+0L3QsNC70YzQvdC+0YHRgtGMPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBuZy1yZXBlYXQ9InBsYXllciBpbiBwbGF5ZXJzLml0ZW1zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tPHRkIG5nLWJpbmQ9InBsYXllck5hbWUiPjwvdGQ+IDwhLS0gKDIpIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS08dGQgbmctYmluZD0icGxheWVyVGVhbSI+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgbmctYmluZD0icGxheWVyQ291bnRyeSI+PC90ZD4gLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3twbGF5ZXJ9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3BsYXllci5uYW1lfX08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3BsYXllci50ZWFtfX08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3BsYXllci5jb3VudHJ5fX08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8c2NyaXB0IHNyYz0iYW5ndWxhci5qcyI+PC9zY3JpcHQ+CiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgdmFyIGFwcCA9IGFuZ3VsYXIubW9kdWxlKCJwbGF5ZXJzQXBwIiwgW10pOyAvLyAoMykKICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhhcHApOwoKICAgICAgICAgICAgdmFyIGRhdGEgPSB7CiAgICAgICAgICAgICAgICBpdGVtczogWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAi0J3QtdC50LzQsNGAIiwKICAgICAgICAgICAgICAgICAgICAgICAgInRlYW0iOiAi0J\/QodCWIiwKICAgICAgICAgICAgICAgICAgICAgICAgImNpdGl6ZW4iOiAi0JHRgNCw0LfQuNC70LjRjyIKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAi0JvQuNC+0L3QtdC70Ywg0JzQtdGB0YHQuCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0ZWFtIjogItCR0LDRgNGB0LXQu9C+0L3QsCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJjaXRpemVuIjogItCQ0YDQs9C10L3RgtC40L3QsCIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0KCgogICAgICAgICAgICBhcHAuY29udHJvbGxlcigicGxheWVyQ3RybCIsIGZ1bmN0aW9uKCRzY29wZSl7CiAgICAgICAgICAgICAgICAvKiRzY29wZS5hZGRQbGF5ZXIgPSBmdW5jdGlvbiBhZGRQbGF5ZXIoKSB7CiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coMSk7CiAgICAgICAgICAgICAgICB9Ki8KICAgICAgICAgICAgICAgICRzY29wZS5wbGF5ZXJzID0gZGF0YTsKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCRzY29wZS5wbGF5ZXJzKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgPC9zY3JpcHQ+CgogICAgPC9ib2R5Pgo8L2h0bWw+&#8221; admin_label=&#8221;\u041a\u043e\u0434 \u0443\u0440\u043e\u043a\u0430&#8221; style=&#8221;docco&#8221; linenums=&#8221;on&#8221; usetabwidth=&#8221;on&#8221; tabwidth=&#8221;4&#8243; _builder_version=&#8221;4.4.2&#8243; hover_enabled=&#8221;0&#8243;]PCEtLQogICAgKDEpIC0g0L\/RgNC+0LLQtdGA0LjQvCwg0YfRgtC+IGFuZ3VsYXIg0LfQsNC\/0YPRgdGC0LjQu9GB0Y8KICAgICgyKSAtINCy0YvRgNCw0LbQtdC90LjRjwogICAgKDMpIC0g0LzQvtC00YPQu9C4CiAgICAoNCkgLSDQtNC40YDQtdC60YLQuNCy0YsKLS0+CjwhRE9DVFlQRSBodG1sPgo8aHRtbCBuZy1hcHA9InBsYXllcnNBcHAiPiA8IS0tICg0KSAtLT4KICAgIDxoZWFkPgogICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KICAgICAgICA8dGl0bGU+PC90aXRsZT4KICAgICAgICA8bGluayBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjMuNy9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiIHJlbD0ic3R5bGVzaGVldCI+CiAgICA8L2hlYWQ+CiAgICA8Ym9keT4KCiAgICAgICAgPCEtLSAoMSkKICAgICAgICDQv9GA0L7QstC10YDQutCwLCDRh9GC0L4gYW5ndWxhciDQstGB0YLRg9C\/0LjQuyDQsiDQtNC10LvQvgogICAgICAgIDxwPnt7MSsyfX08L3A+CiAgICAgICAgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIiBuZy1jb250cm9sbGVyPSJwbGF5ZXJDdHJsIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0xMiI+CiAgICAgICAgICAgICAgICAgICAgPGZvcm0gY2xhc3M9ImZvcm0taG9yaXpvbnRhbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsZWdlbmQ+0KHQv9C40YHQvtC6INGE0YPRgtCx0L7Qu9C40YHRgtC+0LI8L2xlZ2VuZD4KICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9InBsYXllck5hbWUiIGNsYXNzPSJjb2wtc20tNCBjb250cm9sLWxhYmVsIj7QmNC80Y8g0LjQs9GA0L7QutCwPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS04Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5nLW1vZGVsPSJwbGF5ZXJOYW1lIiBjbGFzcz0iZm9ybS1jb250cm9sIiBpZD0icGxheWVyTmFtZSIgcGxhY2Vob2xkZXI9ItCY0LzRjyDQuNCz0YDQvtC60LAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJwbGF5ZXJUZWFtIiBjbGFzcz0iY29sLXNtLTQgY29udHJvbC1sYWJlbCI+0JIg0LrQsNC60L7QuSDQutC+0LzQsNC90LTQtSDQuNCz0YDQsNC10YI8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmctbW9kZWw9InBsYXllclRlYW0iIGNsYXNzPSJmb3JtLWNvbnRyb2wiIGlkPSJwbGF5ZXJUZWFtIiBwbGFjZWhvbGRlcj0i0JIg0LrQsNC60L7QuSDQutC+0LzQsNC90LTQtSDQuNCz0YDQsNC10YIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJwbGF5ZXJDb3VudHJ5IiBjbGFzcz0iY29sLXNtLTQgY29udHJvbC1sYWJlbCI+0JPRgNCw0LbQtNCw0L3RgdGC0LLQvjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tOCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuZy1tb2RlbD0icGxheWVyQ291bnRyeSIgY2xhc3M9ImZvcm0tY29udHJvbCIgaWQ9InBsYXllckNvdW50cnkiIHBsYWNlaG9sZGVyPSLQk9GA0LDQttC00LDQvdGB0YLQstC+Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tOCBjb2wtc20tb2Zmc2V0LTQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZy1jbGljaz0iYWRkUGxheWVyKCkiIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiPtCU0L7QsdCw0LLQuNGC0Yw8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTEyIj4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7QmNCz0YDQvtC6PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+0JrQvtC80LDQvdC00LA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7QndCw0YbQuNC+0L3QsNC70YzQvdC+0YHRgtGMPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBuZy1yZXBlYXQ9InBsYXllciBpbiBwbGF5ZXJzLml0ZW1zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tPHRkIG5nLWJpbmQ9InBsYXllck5hbWUiPjwvdGQ+IDwhLS0gKDIpIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS08dGQgbmctYmluZD0icGxheWVyVGVhbSI+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgbmctYmluZD0icGxheWVyQ291bnRyeSI+PC90ZD4gLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3twbGF5ZXJ9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3BsYXllci5uYW1lfX08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3BsYXllci50ZWFtfX08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3BsYXllci5jb3VudHJ5fX08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8c2NyaXB0IHNyYz0iYW5ndWxhci5qcyI+PC9zY3JpcHQ+CiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgdmFyIGFwcCA9IGFuZ3VsYXIubW9kdWxlKCJwbGF5ZXJzQXBwIiwgW10pOyAvLyAoMykKICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhhcHApOwoKICAgICAgICAgICAgdmFyIGRhdGEgPSB7CiAgICAgICAgICAgICAgICBpdGVtczogWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAi0J3QtdC50LzQsNGAIiwKICAgICAgICAgICAgICAgICAgICAgICAgInRlYW0iOiAi0J\/QodCWIiwKICAgICAgICAgICAgICAgICAgICAgICAgImNpdGl6ZW4iOiAi0JHRgNCw0LfQuNC70LjRjyIKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAi0JvQuNC+0L3QtdC70Ywg0JzQtdGB0YHQuCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0ZWFtIjogItCR0LDRgNGB0LXQu9C+0L3QsCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJjaXRpemVuIjogItCQ0YDQs9C10L3RgtC40L3QsCIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0KCgogICAgICAgICAgICBhcHAuY29udHJvbGxlcigicGxheWVyQ3RybCIsIGZ1bmN0aW9uKCRzY29wZSl7CiAgICAgICAgICAgICAgICAvKiRzY29wZS5hZGRQbGF5ZXIgPSBmdW5jdGlvbiBhZGRQbGF5ZXIoKSB7CiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coMSk7CiAgICAgICAgICAgICAgICB9Ki8KICAgICAgICAgICAgICAgICRzY29wZS5wbGF5ZXJzID0gZGF0YTsKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCRzY29wZS5wbGF5ZXJzKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgPC9zY3JpcHQ+CgogICAgPC9ib2R5Pgo8L2h0bWw+[\/et_pb_dmb_code_snippet][et_pb_comments _builder_version=&#8221;4.4.2&#8243; custom_margin=&#8221;30px||||false|false&#8221; hover_enabled=&#8221;0&#8243;][\/et_pb_comments][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In last lesson. Today we begin to build simple angular app, while discussing the basic concepts &#8211; directives, modules, expressions, controllers, and shortly consider approach to build apps &#8211; MVC (Model-View-Controller). Let&#8217;s discuss key definitions of this lesson: Module initializes your app and is container of different app parts (for example, controllers). Directives are additional [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[256,219],"tags":[278,277,230],"class_list":["post-26744","post","type-post","status-publish","format-standard","hentry","category-javascript","category-tutorials","tag-angular-en","tag-angularjs-en","tag-javascript-en"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Angular js. Modules, directives, controllers, expressions, MVC - Kamil Abzalov&#039;s blog<\/title>\n<meta name=\"description\" content=\"In this lesson we will continue learing angular js framework, considering importance of directives, controllers, expressions. Also we&#039;ll consider essence of the approach to build applications - MVC (Model-VIew-Controller)\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/angularjs-modules-directives-controllers-mvc\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Angular js. Modules, directives, controllers, expressions, MVC - Kamil Abzalov&#039;s blog\" \/>\n<meta property=\"og:description\" content=\"In this lesson we will continue learing angular js framework, considering importance of directives, controllers, expressions. Also we&#039;ll consider essence of the approach to build applications - MVC (Model-VIew-Controller)\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/angularjs-modules-directives-controllers-mvc\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/kamabzalov\" \/>\n<meta property=\"article:published_time\" content=\"2017-08-26T10:00:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-04-09T20:34:01+00:00\" \/>\n<meta name=\"author\" content=\"Kamil&#039; Abzalov\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Angular js. Modules, directives, controllers, expressions, MVC\" \/>\n<meta name=\"twitter:description\" content=\"In this lesson we will continue learing angular js framework, considering importance of directives, controllers, expressions. Also we&#039;ll consider essence of the approach to build applications - MVC (Model-VIew-Controller)\" \/>\n<meta name=\"twitter:creator\" content=\"@kamabzalov\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kamil&#039; Abzalov\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/javascript\\\/angularjs-modules-directives-controllers-mvc\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/javascript\\\/angularjs-modules-directives-controllers-mvc\\\/\"},\"author\":{\"name\":\"Kamil' Abzalov\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#\\\/schema\\\/person\\\/9c53360f21b83306ba40c2231573c600\"},\"headline\":\"Angular js. Modules, directives, controllers, expressions, MVC\",\"datePublished\":\"2017-08-26T10:00:33+00:00\",\"dateModified\":\"2020-04-09T20:34:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/javascript\\\/angularjs-modules-directives-controllers-mvc\\\/\"},\"wordCount\":1555,\"commentCount\":0,\"keywords\":[\"angular\",\"angularjs\",\"javascript\"],\"articleSection\":[\"JavaScript\",\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/javascript\\\/angularjs-modules-directives-controllers-mvc\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/javascript\\\/angularjs-modules-directives-controllers-mvc\\\/\",\"url\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/javascript\\\/angularjs-modules-directives-controllers-mvc\\\/\",\"name\":\"Angular js. Modules, directives, controllers, expressions, MVC - Kamil Abzalov's blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#website\"},\"datePublished\":\"2017-08-26T10:00:33+00:00\",\"dateModified\":\"2020-04-09T20:34:01+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#\\\/schema\\\/person\\\/9c53360f21b83306ba40c2231573c600\"},\"description\":\"In this lesson we will continue learing angular js framework, considering importance of directives, controllers, expressions. Also we'll consider essence of the approach to build applications - MVC (Model-VIew-Controller)\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/javascript\\\/angularjs-modules-directives-controllers-mvc\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/javascript\\\/angularjs-modules-directives-controllers-mvc\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/javascript\\\/angularjs-modules-directives-controllers-mvc\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\",\"item\":\"https:\\\/\\\/kamil-abzalov.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Angular js. Modules, directives, controllers, expressions, MVC\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#website\",\"url\":\"https:\\\/\\\/kamil-abzalov.com\\\/\",\"name\":\"\u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/kamil-abzalov.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#\\\/schema\\\/person\\\/9c53360f21b83306ba40c2231573c600\",\"name\":\"Kamil' Abzalov\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g\",\"caption\":\"Kamil' Abzalov\"},\"sameAs\":[\"https:\\\/\\\/kamil-abzalov.com\\\/\",\"https:\\\/\\\/www.facebook.com\\\/kamabzalov\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/kamabzalov\",\"https:\\\/\\\/x.com\\\/kamabzalov\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/kamabzalov\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Angular js. Modules, directives, controllers, expressions, MVC - Kamil Abzalov's blog","description":"In this lesson we will continue learing angular js framework, considering importance of directives, controllers, expressions. Also we'll consider essence of the approach to build applications - MVC (Model-VIew-Controller)","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:\/\/kamil-abzalov.com\/videouroki\/javascript\/angularjs-modules-directives-controllers-mvc\/","og_locale":"en_US","og_type":"article","og_title":"Angular js. Modules, directives, controllers, expressions, MVC - Kamil Abzalov's blog","og_description":"In this lesson we will continue learing angular js framework, considering importance of directives, controllers, expressions. Also we'll consider essence of the approach to build applications - MVC (Model-VIew-Controller)","og_url":"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/angularjs-modules-directives-controllers-mvc\/","og_site_name":"\u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430","article_author":"https:\/\/www.facebook.com\/kamabzalov","article_published_time":"2017-08-26T10:00:33+00:00","article_modified_time":"2020-04-09T20:34:01+00:00","author":"Kamil' Abzalov","twitter_card":"summary_large_image","twitter_title":"Angular js. Modules, directives, controllers, expressions, MVC","twitter_description":"In this lesson we will continue learing angular js framework, considering importance of directives, controllers, expressions. Also we'll consider essence of the approach to build applications - MVC (Model-VIew-Controller)","twitter_creator":"@kamabzalov","twitter_misc":{"Written by":"Kamil' Abzalov","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/angularjs-modules-directives-controllers-mvc\/#article","isPartOf":{"@id":"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/angularjs-modules-directives-controllers-mvc\/"},"author":{"name":"Kamil' Abzalov","@id":"https:\/\/kamil-abzalov.com\/#\/schema\/person\/9c53360f21b83306ba40c2231573c600"},"headline":"Angular js. Modules, directives, controllers, expressions, MVC","datePublished":"2017-08-26T10:00:33+00:00","dateModified":"2020-04-09T20:34:01+00:00","mainEntityOfPage":{"@id":"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/angularjs-modules-directives-controllers-mvc\/"},"wordCount":1555,"commentCount":0,"keywords":["angular","angularjs","javascript"],"articleSection":["JavaScript","Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kamil-abzalov.com\/videouroki\/javascript\/angularjs-modules-directives-controllers-mvc\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/angularjs-modules-directives-controllers-mvc\/","url":"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/angularjs-modules-directives-controllers-mvc\/","name":"Angular js. Modules, directives, controllers, expressions, MVC - Kamil Abzalov's blog","isPartOf":{"@id":"https:\/\/kamil-abzalov.com\/#website"},"datePublished":"2017-08-26T10:00:33+00:00","dateModified":"2020-04-09T20:34:01+00:00","author":{"@id":"https:\/\/kamil-abzalov.com\/#\/schema\/person\/9c53360f21b83306ba40c2231573c600"},"description":"In this lesson we will continue learing angular js framework, considering importance of directives, controllers, expressions. Also we'll consider essence of the approach to build applications - MVC (Model-VIew-Controller)","breadcrumb":{"@id":"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/angularjs-modules-directives-controllers-mvc\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kamil-abzalov.com\/videouroki\/javascript\/angularjs-modules-directives-controllers-mvc\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/angularjs-modules-directives-controllers-mvc\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430","item":"https:\/\/kamil-abzalov.com\/en\/"},{"@type":"ListItem","position":2,"name":"Angular js. Modules, directives, controllers, expressions, MVC"}]},{"@type":"WebSite","@id":"https:\/\/kamil-abzalov.com\/#website","url":"https:\/\/kamil-abzalov.com\/","name":"\u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kamil-abzalov.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/kamil-abzalov.com\/#\/schema\/person\/9c53360f21b83306ba40c2231573c600","name":"Kamil' Abzalov","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g","caption":"Kamil' Abzalov"},"sameAs":["https:\/\/kamil-abzalov.com\/","https:\/\/www.facebook.com\/kamabzalov","https:\/\/www.linkedin.com\/in\/kamabzalov","https:\/\/x.com\/kamabzalov","https:\/\/www.youtube.com\/user\/kamabzalov"]}]}},"_links":{"self":[{"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/posts\/26744","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/comments?post=26744"}],"version-history":[{"count":15,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/posts\/26744\/revisions"}],"predecessor-version":[{"id":31919,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/posts\/26744\/revisions\/31919"}],"wp:attachment":[{"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/media?parent=26744"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/categories?post=26744"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/tags?post=26744"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}