{"id":72650,"date":"2024-08-08T11:31:11","date_gmt":"2024-08-08T08:01:11","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/angular-router-url-parameters-using-ngrx-router-store-180f\/"},"modified":"2024-08-08T11:31:11","modified_gmt":"2024-08-08T08:01:11","slug":"angular-router-url-parameters-using-ngrx-router-store-180f","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/angular-router-url-parameters-using-ngrx-router-store-180f\/","title":{"rendered":"\u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL \u0631\u0648\u062a\u0631 \u0632\u0627\u0648\u06cc\u0647 \u0627\u06cc \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0631\u0648\u062a\u0631 NgRx"},"content":{"rendered":"<div data-article-id=\"1951957\" id=\"article-body\">\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0645\u0627 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc\u06cc \u0631\u0627 \u0628\u0627 \u062d\u0627\u0644\u062a \u0645\u06cc\u200c\u0633\u0627\u0632\u06cc\u0645\u060c \u0646\u0642\u0637\u0647 \u0648\u0631\u0648\u062f \u06a9\u0644\u06cc\u062f\u06cc \u0628\u0631\u0627\u06cc \u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0648\u0636\u0639\u06cc\u062a \u0645\u0627 \u0628\u0631\u0627\u06cc \u0627\u062c\u0632\u0627\u06cc \u0645\u0627 \u0627\u0633\u062a\u060c \u0627\u0645\u0627 \u06af\u0627\u0647\u06cc \u0627\u0648\u0642\u0627\u062a\u060c \u0645\u0627 \u0627\u0644\u0632\u0627\u0645\u0627\u062a\u06cc \u0628\u0631\u0627\u06cc \u062d\u0641\u0638 \u0648\u0636\u0639\u06cc\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u062f\u0631 URL \u062f\u0627\u0631\u06cc\u0645 \u062a\u0627 \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u0645 \u062a\u0627 \u062d\u0627\u0644\u062a\u200c\u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0627\u0635 \u0631\u0627 \u0646\u0634\u0627\u0646\u0647\u200c\u06af\u0630\u0627\u0631\u06cc \u06a9\u0646\u0646\u062f \u06cc\u0627 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0628\u06af\u0630\u0627\u0631\u0646\u062f\u060c \u0628\u0627 \u0647\u062f\u0641 \u0628\u0647\u0628\u0648\u062f \u06a9\u0627\u0631\u0628\u0631. \u062a\u062c\u0631\u0628\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0646\u0627\u0648\u0628\u0631\u06cc \u0631\u0627 \u0622\u0633\u0627\u0646 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u062f\u0631 \u0628\u06cc\u0634\u062a\u0631 \u0645\u0648\u0627\u0631\u062f\u060c Angular Router \u0648 ActivatedRoute \u0631\u0627 \u062f\u0631 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u200c\u0647\u0627\u06cc \u062e\u0648\u062f \u062a\u0631\u06a9\u06cc\u0628 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0627\u06cc\u0646 \u0645\u0648\u0627\u0631\u062f \u0631\u0627 \u062d\u0644 \u06a9\u0646\u06cc\u0645 \u0648 \u0627\u06cc\u0646 \u0645\u0633\u0626\u0648\u0644\u06cc\u062a \u0631\u0627 \u0628\u0647 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u200c\u0647\u0627 \u0645\u062d\u0648\u0644 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u06cc\u0627 \u062f\u0631 \u0645\u0648\u0627\u0631\u062f \u062f\u06cc\u06af\u0631 \u062a\u0631\u06a9\u06cc\u0628\u06cc \u0628\u06cc\u0646 \u0627\u062c\u0632\u0627 \u0648 \u0627\u0641\u06a9\u062a \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0633\u0639\u06cc \u06a9\u0646\u06cc\u0645 \u0622\u0646 \u0631\u0627 \u062d\u0644 \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u0645\u0646 \u0628\u0647 \u062a\u0639\u0637\u06cc\u0644\u0627\u062a \u062e\u0648\u062f \u062f\u0631 \u0645\u0646\u0648\u0631\u06a9\u0627 \u0627\u062f\u0627\u0645\u0647 \u0645\u06cc \u062f\u0647\u0645\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0627\u0645\u0631\u0648\u0632 \u0635\u0628\u062d \u0648\u0642\u062a \u06af\u0631\u0641\u062a\u0645 \u062a\u0627 \u06cc\u0627\u062f \u0628\u06af\u06cc\u0631\u0645 \u0648 \u062a\u0645\u0631\u06cc\u0646 \u06a9\u0646\u0645 \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0648\u0636\u0639\u06cc\u062a \u0631\u0627 \u062f\u0631 \u0645\u0633\u06cc\u0631\u06cc\u0627\u0628 \u0632\u0627\u0648\u06cc\u0647 \u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u0645 \u0648 \u0686\u06af\u0648\u0646\u0647 \u0631\u0648\u062a\u0631 ngrx \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0628\u0647\u0628\u0648\u062f \u06a9\u062f \u0645\u0646 \u06a9\u0645\u06a9 \u06a9\u0646\u062f \u0648 \u0645\u0633\u0626\u0648\u0644\u06cc\u062a \u0627\u062c\u0632\u0627\u06cc \u0645\u0646 \u0631\u0627 \u06a9\u0627\u0647\u0634 \u062f\u0647\u062f.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/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=\"\u062a\u063a\u06cc\u06cc\u0631 \u0648\u0636\u0639\u06cc\u062a \u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628\"><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:\/\/nabfollower.com\/blog\/angular-router-url-parameters-using-ngrx-router-store-180f\/#%D8%B3%D9%86%D8%A7%D8%B1%DB%8C%D9%88\" >\u0633\u0646\u0627\u0631\u06cc\u0648<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/angular-router-url-parameters-using-ngrx-router-store-180f\/#%D8%B5%D9%81%D8%AD%D9%87_%D9%88%DB%8C%D8%B1%D8%A7%DB%8C%D8%B4\" >\u0635\u0641\u062d\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/angular-router-url-parameters-using-ngrx-router-store-180f\/#%D9%85%DA%A9%D8%A7%D9%86_%D9%88%DB%8C%D8%B1%D8%A7%DB%8C%D8%B4_%D8%B1%D8%A7_%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA_%DA%A9%D9%86%DB%8C%D8%AF\" >\u0645\u06a9\u0627\u0646 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/angular-router-url-parameters-using-ngrx-router-store-180f\/#%DA%86%D8%B1%D8%A7_%D9%81%D8%B1%D9%88%D8%B4%DA%AF%D8%A7%D9%87_%D8%B1%D9%88%D8%AA%D8%B1_NgRx%D8%9F\" >\u0686\u0631\u0627 \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0631\u0648\u062a\u0631 NgRx\u061f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/angular-router-url-parameters-using-ngrx-router-store-180f\/#%D8%A7%D9%82%D8%AF%D8%A7%D9%85%D8%A7%D8%AA_%D8%B1%D9%88%D8%AA%D8%B1\" >\u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0631\u0648\u062a\u0631<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/angular-router-url-parameters-using-ngrx-router-store-180f\/#%D8%A7%D9%86%D8%AA%D8%AE%D8%A7%D8%A8%DA%AF%D8%B1%D9%87%D8%A7%DB%8C_%D9%85%D8%B3%DB%8C%D8%B1%DB%8C%D8%A7%D8%A8\" >\u0627\u0646\u062a\u062e\u0627\u0628\u06af\u0631\u0647\u0627\u06cc \u0645\u0633\u06cc\u0631\u06cc\u0627\u0628<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/angular-router-url-parameters-using-ngrx-router-store-180f\/#%D8%B1%D9%88%D8%AA%D8%B1_NgRx_%D8%B1%D8%A7_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%DA%A9%D9%86%DB%8C%D8%AF\" >\u0631\u0648\u062a\u0631 NgRx \u0631\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/angular-router-url-parameters-using-ngrx-router-store-180f\/#%D8%A8%D8%A7_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_NgRx_RouterSelectors_%D8%B3%D8%A7%D8%AF%D9%87_%DA%A9%D9%86%DB%8C%D8%AF\" >\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 NgRx RouterSelectors \u0633\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/angular-router-url-parameters-using-ngrx-router-store-180f\/#%D8%AE%D9%84%D8%A7%D8%B5%D9%87\" >\u062e\u0644\u0627\u0635\u0647<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B3%D9%86%D8%A7%D8%B1%DB%8C%D9%88\"><\/span>\n<p>  \u0633\u0646\u0627\u0631\u06cc\u0648<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0645\u0646 \u0645\u06cc \u062e\u0648\u0627\u0647\u0645 \u06cc\u06a9 \u0635\u0641\u062d\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u0645 \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0628\u062a\u0648\u0627\u0646\u0646\u062f \u062c\u0632\u0626\u06cc\u0627\u062a \u0645\u06a9\u0627\u0646 \u0627\u0646\u062a\u062e\u0627\u0628 \u0634\u062f\u0647 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u0646\u062f\u060c URL \u0631\u0627 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0628\u06af\u0630\u0627\u0631\u0646\u062f \u0648 \u0628\u0639\u062f\u0627\u064b \u0628\u0647 \u0647\u0645\u0627\u0646 \u062d\u0627\u0644\u062a \u0628\u0631\u06af\u0631\u062f\u0646\u062f.  \u0645\u062b\u0644\u0627\u060c <code>http:\/\/localhost\/places\/2<\/code>\u060c \u062c\u0627\u06cc\u06cc \u06a9\u0647 <code>2<\/code> \u0634\u0646\u0627\u0633\u0647 \u0645\u06a9\u0627\u0646\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u062d\u0627\u0644 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0627\u0633\u062a.  \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0627\u06cc\u062f \u0628\u062a\u0648\u0627\u0646\u0646\u062f \u067e\u0633 \u0627\u0632 \u0627\u0646\u062c\u0627\u0645 \u06cc\u06a9 \u0639\u0645\u0644 \u0628\u0647 \u0635\u0641\u062d\u0647 \u0627\u0635\u0644\u06cc \u0628\u0627\u0632\u06af\u0631\u062f\u0646\u062f.<\/p>\n<blockquote>\n<p>\ud83d\udca1<strong>\u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u062e\u0634\u06cc \u0627\u0632 \u0645\u062c\u0645\u0648\u0639\u0647 \u0645\u0646 \u062f\u0631 \u0645\u0648\u0631\u062f \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc NgRx \u0627\u0633\u062a.  \u0627\u06af\u0631 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc\u062f\u060c \u0644\u0637\u0641\u0627 \u0622\u0646 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f.<\/strong><\/p>\n<p>https:\/\/www.danywalls.com\/understanding-when-and-why-to-implement-ngrx-in-angular<\/p>\n<p>https:\/\/www.danywalls.com\/how-to-debug-ngrx-using-redux-devtools<\/p>\n<p>https:\/\/www.danywalls.com\/how-to-implement-actioncreationgroup-in-ngrx<\/p>\n<p>https:\/\/www.danywalls.com\/how-to-use-ngrx-selectors-in-angular<\/p>\n<p>https:\/\/danywalls.com\/when-to-use-concatmap-mergemap-switchmap-and-exhaustmap-operators-in-building-a-crud-with-ngrx  <\/p>\n<\/blockquote>\n<p>\u0645\u062e\u0632\u0646 \u0631\u0627 \u0634\u0628\u06cc\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f <code>start-with-ngrx<\/code>\u060c \u0627\u06cc\u0646 \u067e\u0631\u0648\u0698\u0647 \u0631\u0627 \u0628\u0627 ngrx \u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u0622\u0645\u0627\u062f\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0647 \u0634\u0639\u0628\u0647 \u0633\u0648\u0626\u06cc\u0686 \u06a9\u0646\u06cc\u062f <code>crud-ngrx<\/code><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>https:\/\/github.com\/danywalls\/start-with-ngrx.git\ngit checkout crud-ngrx\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0632\u0645\u0627\u0646 \u06a9\u062f\u0646\u0648\u06cc\u0633\u06cc \u0641\u0631\u0627 \u0631\u0633\u06cc\u062f\u0647 \u0627\u0633\u062a!<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B5%D9%81%D8%AD%D9%87_%D9%88%DB%8C%D8%B1%D8%A7%DB%8C%D8%B4\"><\/span>\n<p>  \u0635\u0641\u062d\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u0628\u062a\u062f\u0627 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f \u0648 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Angular CLI \u06cc\u06a9 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u062c\u062f\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>ng g c pages\/place-edit\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0639\u062f\u060c \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f <code>app.routes.ts<\/code> \u0648 \u062b\u0628\u062a \u0646\u0627\u0645 \u06a9\u0646\u06cc\u062f <code>PlaceEditComponent<\/code> \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 <code>\/places\/:id<\/code>:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"p\">{<\/span>\n  <span class=\"nl\">path<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">places\/:id<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n  <span class=\"nx\">component<\/span><span class=\"p\">:<\/span> <span class=\"nx\">PlaceEditComponent<\/span><span class=\"p\">,<\/span>\n<span class=\"p\">},<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D9%85%DA%A9%D8%A7%D9%86_%D9%88%DB%8C%D8%B1%D8%A7%DB%8C%D8%B4_%D8%B1%D8%A7_%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u0645\u06a9\u0627\u0646 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u0648\u0644\u06cc\u0646 \u0631\u0627\u0647 \u062d\u0644 \u0645\u0646 \u062a\u0631\u06a9\u06cc\u0628\u06cc \u0627\u0632 \u0633\u0631\u0648\u06cc\u0633\u060c \u0627\u0641\u06a9\u062a\u060c \u0631\u0648\u062a\u0631 \u0648 \u0645\u0633\u06cc\u0631 \u0641\u0639\u0627\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a.  \u0627\u06cc\u0646 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0627\u06cc\u062c\u0627\u062f \u0645\u0646\u0637\u0642 \u0627\u0636\u0627\u0641\u0647 \u062f\u0631 \u0686\u0646\u062f\u06cc\u0646 \u0645\u06a9\u0627\u0646 \u062f\u0627\u0631\u062f.<\/p>\n<ul>\n<li>\n<p>\u0631\u0648\u0634 \u0631\u0627 \u062f\u0631 \u0633\u0631\u0648\u06cc\u0633 \u0645\u06a9\u0627\u0646 \u0647\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<\/li>\n<li>\n<p>\u06af\u0648\u0634 \u062f\u0627\u062f\u0646 \u0628\u0647 \u0627\u0642\u062f\u0627\u0645\u0627\u062a<\/p>\n<\/li>\n<li>\n<p>\u0645\u0648\u0641\u0642\u06cc\u062a \u0631\u0627 \u0628\u0631\u0627\u06cc \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u0648\u0636\u0639\u06cc\u062a \u0645\u06a9\u0627\u0646 \u0627\u0646\u062a\u062e\u0627\u0628 \u0634\u062f\u0647 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f.<\/p>\n<\/li>\n<li>\n<p>\u0645\u06a9\u0627\u0646 \u0627\u0646\u062a\u062e\u0627\u0628 \u0634\u062f\u0647 \u0631\u0627 \u062f\u0631 edit-place.component \u0628\u062e\u0648\u0627\u0646\u06cc\u062f.<\/p>\n<\/li>\n<\/ul>\n<p>\u0627\u0628\u062a\u062f\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f <code>getById<\/code> \u0631\u0648\u0634 \u062f\u0631 <code>places.service.ts<\/code>\u060c \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0634\u0646\u0627\u0633\u0647 \u0645\u06a9\u0627\u0646 \u0631\u0627 \u0628\u062f\u0633\u062a \u0645\u06cc \u0622\u0648\u0631\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"nf\">getById<\/span><span class=\"p\">(<\/span><span class=\"nx\">id<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span><span class=\"p\">):<\/span> <span class=\"nx\">Observable<\/span><span class=\"o\"><span class=\"nx\">Place<\/span><span class=\"o\">&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return<\/span> <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">http<\/span><span class=\"p\">.<\/span><span class=\"kd\">get<\/span><span class=\"o\"><span class=\"nx\">Place<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">(<\/span><span class=\"s2\">`<\/span><span class=\"p\">${<\/span><span class=\"nx\">environment<\/span><span class=\"p\">.<\/span><span class=\"nx\">menorcaPlacesAPI<\/span><span class=\"p\">}<\/span><span class=\"s2\">\/<\/span><span class=\"p\">${<\/span><span class=\"nx\">id<\/span><span class=\"p\">}<\/span><span class=\"s2\">`<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u062c\u062f\u06cc\u062f\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a getById \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f\u060c \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f <code>places.actions.ts<\/code> \u0627\u0639\u0645\u0627\u0644 \u0631\u0627 \u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634\u060c \u0645\u0648\u0641\u0642\u06cc\u062a \u0648 \u0634\u06a9\u0633\u062a \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"c1\">\/\/ PlacePageActions<\/span>\n<span class=\"dl\">'<\/span><span class=\"s1\">Edit Place<\/span><span class=\"dl\">'<\/span><span class=\"p\">:<\/span> <span class=\"nx\">props<\/span><span class=\"o\"><span class=\"p\">{<\/span> <span class=\"na\">id<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span> <span class=\"p\">}<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">(),<\/span>\n\n<span class=\"c1\">\/\/ PlacesApiActions<\/span>\n<span class=\"dl\">'<\/span><span class=\"s1\">Get Place Success<\/span><span class=\"dl\">'<\/span><span class=\"p\">:<\/span> <span class=\"nx\">props<\/span><span class=\"o\"><span class=\"p\">{<\/span> <span class=\"na\">place<\/span><span class=\"p\">:<\/span> <span class=\"nx\">Place<\/span> <span class=\"p\">}<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">(),<\/span>\n<span class=\"dl\">'<\/span><span class=\"s1\">Get Place Failure<\/span><span class=\"dl\">'<\/span><span class=\"p\">:<\/span> <span class=\"nx\">props<\/span><span class=\"o\"><span class=\"p\">{<\/span> <span class=\"na\">message<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span> <span class=\"p\">}<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">(),<\/span>\n<\/span><\/span><\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u0627\u0642\u062f\u0627\u0645\u0627\u062a\u060c \u06a9\u0627\u0647\u0646\u062f\u0647 \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"nf\">on<\/span><span class=\"p\">(<\/span><span class=\"nx\">PlacesApiActions<\/span><span class=\"p\">.<\/span><span class=\"nx\">getPlaceSuccess<\/span><span class=\"p\">,<\/span> <span class=\"p\">(<\/span><span class=\"nx\">state<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">place<\/span> <span class=\"p\">})<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">({<\/span>\n  <span class=\"p\">...<\/span><span class=\"nx\">state<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">loading<\/span><span class=\"p\">:<\/span> <span class=\"kc\">false<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">placeSelected<\/span><span class=\"p\">:<\/span> <span class=\"nx\">place<\/span><span class=\"p\">,<\/span>\n<span class=\"p\">})),<\/span>\n<span class=\"nf\">on<\/span><span class=\"p\">(<\/span><span class=\"nx\">PlacesApiActions<\/span><span class=\"p\">.<\/span><span class=\"nx\">getPlaceFailure<\/span><span class=\"p\">,<\/span> <span class=\"p\">(<\/span><span class=\"nx\">state<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">message<\/span> <span class=\"p\">})<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">({<\/span>\n  <span class=\"p\">...<\/span><span class=\"nx\">state<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">loading<\/span><span class=\"p\">:<\/span> <span class=\"kc\">false<\/span><span class=\"p\">,<\/span>\n  <span class=\"nx\">message<\/span><span class=\"p\">,<\/span>\n<span class=\"p\">})),<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0627\u0632 \u06a9\u0646 <code>place.effects.ts<\/code>\u060c \u06cc\u06a9 \u0627\u0641\u06a9\u062a \u062c\u062f\u06cc\u062f \u0628\u0631\u0627\u06cc \u06af\u0648\u0634 \u062f\u0627\u062f\u0646 \u0628\u0647 \u0622\u0646 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f <code>editPlace<\/code> \u0627\u0642\u062f\u0627\u0645\u060c \u062a\u0645\u0627\u0633 <code>placesService.getById<\/code>\u060c \u0648 \u0633\u067e\u0633 \u0628\u0631\u0627\u06cc \u0627\u0631\u0633\u0627\u0644 \u067e\u0627\u0633\u062e \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f <code>getPlaceSuccess<\/code> \u0639\u0645\u0644.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">getPlaceEffect$<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">createEffect<\/span><span class=\"p\">(<\/span>\n  <span class=\"p\">(<\/span><span class=\"nx\">actions$<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">inject<\/span><span class=\"p\">(<\/span><span class=\"nx\">Actions<\/span><span class=\"p\">),<\/span> <span class=\"nx\">placesService<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">inject<\/span><span class=\"p\">(<\/span><span class=\"nx\">PlacesService<\/span><span class=\"p\">))<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nx\">actions$<\/span><span class=\"p\">.<\/span><span class=\"nf\">pipe<\/span><span class=\"p\">(<\/span>\n      <span class=\"nf\">ofType<\/span><span class=\"p\">(<\/span><span class=\"nx\">PlacesPageActions<\/span><span class=\"p\">.<\/span><span class=\"nx\">editPlace<\/span><span class=\"p\">),<\/span>\n      <span class=\"nf\">mergeMap<\/span><span class=\"p\">(({<\/span> <span class=\"nx\">id<\/span> <span class=\"p\">})<\/span> <span class=\"o\">=&gt;<\/span>\n        <span class=\"nx\">placesService<\/span><span class=\"p\">.<\/span><span class=\"nf\">getById<\/span><span class=\"p\">(<\/span><span class=\"nx\">id<\/span><span class=\"p\">).<\/span><span class=\"nf\">pipe<\/span><span class=\"p\">(<\/span>\n          <span class=\"nf\">map<\/span><span class=\"p\">((<\/span><span class=\"nx\">apiPlace<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span>\n            <span class=\"nx\">PlacesApiActions<\/span><span class=\"p\">.<\/span><span class=\"nf\">getPlaceSuccess<\/span><span class=\"p\">({<\/span> <span class=\"na\">place<\/span><span class=\"p\">:<\/span> <span class=\"nx\">apiPlace<\/span> <span class=\"p\">})<\/span>\n          <span class=\"p\">),<\/span>\n          <span class=\"nf\">catchError<\/span><span class=\"p\">((<\/span><span class=\"nx\">error<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span>\n            <span class=\"k\">of<\/span><span class=\"p\">(<\/span><span class=\"nx\">PlacesApiActions<\/span><span class=\"p\">.<\/span><span class=\"nf\">getPlaceFailure<\/span><span class=\"p\">({<\/span> <span class=\"na\">message<\/span><span class=\"p\">:<\/span> <span class=\"nx\">error<\/span> <span class=\"p\">}))<\/span>\n          <span class=\"p\">)<\/span>\n        <span class=\"p\">)<\/span>\n      <span class=\"p\">)<\/span>\n    <span class=\"p\">);<\/span>\n  <span class=\"p\">},<\/span>\n  <span class=\"p\">{<\/span> <span class=\"na\">functional<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span> <span class=\"p\">}<\/span>\n<span class=\"p\">);<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u0631\u0627\u0647 \u062d\u0644 \u0627\u0645\u06cc\u062f\u0648\u0627\u0631 \u06a9\u0646\u0646\u062f\u0647 \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f.  \u0628\u0627\u06cc\u062f \u0627\u06a9\u0634\u0646 editPlace \u0631\u0627 \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u0645 \u0648 \u0631\u0648\u062a\u0631 \u0631\u0627 \u0628\u0647 \u062f\u0627\u062e\u0644 \u062a\u0632\u0631\u06cc\u0642 \u06a9\u0646\u0645 <code>place-card.component.ts<\/code> \u0628\u0631\u0627\u06cc \u062d\u0631\u06a9\u062a \u0628\u0647 <code>\/places:id<\/code> \u0645\u0633\u06cc\u0631<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"nf\">goEditPlace<\/span><span class=\"p\">(<\/span><span class=\"nx\">id<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">store<\/span><span class=\"p\">.<\/span><span class=\"nf\">dispatch<\/span><span class=\"p\">(<\/span><span class=\"nx\">PlacesPageActions<\/span><span class=\"p\">.<\/span><span class=\"nf\">editPlace<\/span><span class=\"p\">({<\/span> <span class=\"na\">id<\/span><span class=\"p\">:<\/span> <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nf\">place<\/span><span class=\"p\">().<\/span><span class=\"nx\">id<\/span> <span class=\"p\">}));<\/span>\n  <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">router<\/span><span class=\"p\">.<\/span><span class=\"nf\">navigate<\/span><span class=\"p\">([<\/span><span class=\"dl\">'<\/span><span class=\"s1\">\/places<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"nx\">id<\/span><span class=\"p\">]);<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f!  \u0627\u0645\u0627 \u0628\u0631\u062e\u06cc \u0627\u0632 \u0639\u0648\u0627\u0631\u0636 \u062c\u0627\u0646\u0628\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f.  \u0627\u06af\u0631 \u0645\u06a9\u0627\u0646 \u062f\u06cc\u06af\u0631\u06cc \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f \u0648 \u0628\u0647 \u0635\u0641\u062d\u0647 \u0628\u0631\u06af\u0631\u062f\u06cc\u062f\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0627\u0646\u062a\u062e\u0627\u0628 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0646\u0634\u0648\u062f \u0648 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0645\u06a9\u0627\u0646 \u0642\u0628\u0644\u06cc \u0631\u0627 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u062f.  \u0647\u0645\u0686\u0646\u06cc\u0646\u060c \u0628\u0627 \u0627\u062a\u0635\u0627\u0644\u0627\u062a \u06a9\u0646\u062f\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u0627 \u062e\u0637\u0627\u06cc &#8220;\u06cc\u0627\u0641\u062a \u0646\u0634\u062f&#8221; \u0645\u0648\u0627\u062c\u0647 \u0634\u0648\u06cc\u062f \u0632\u06cc\u0631\u0627 \u0647\u0646\u0648\u0632 \u062f\u0631 \u062d\u0627\u0644 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u0627\u0633\u062a.<\/p>\n<p>\ud83d\udca1\u06cc\u06a9 \u0631\u0627\u0647 \u062d\u0644\u060c \u0628\u0647 \u0644\u0637\u0641 J\u00f6rgen de Groot\u060c \u0627\u0646\u062a\u0642\u0627\u0644 \u0631\u0648\u062a\u0631 \u0628\u0647 \u0633\u0645\u062a \u0627\u0641\u06a9\u062a \u0627\u0633\u062a.  \u0628\u0627\u0632 \u06a9\u0646 <code>places.effect.ts<\/code> \u0633\u0631\u0648\u06cc\u0633 \u0648 \u0631\u0648\u062a\u0631 \u0631\u0627 \u0641\u0627\u06cc\u0644 \u0648 \u062a\u0632\u0631\u06cc\u0642 \u06a9\u0646\u06cc\u062f.  \u0628\u0647 \u0627\u06a9\u0634\u0646 editPlace \u06af\u0648\u0634 \u062f\u0647\u06cc\u062f\u060c \u062f\u0627\u062f\u0647 \u0647\u0627 \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f\u060c \u0633\u067e\u0633 \u062d\u0631\u06a9\u062a \u06a9\u0646\u06cc\u062f \u0648 \u0627\u0642\u062f\u0627\u0645 \u0631\u0627 \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u06a9\u062f \u0646\u0647\u0627\u06cc\u06cc \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">getPlaceEffect$<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">createEffect<\/span><span class=\"p\">(<\/span>\n  <span class=\"p\">(<\/span>\n    <span class=\"nx\">actions$<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">inject<\/span><span class=\"p\">(<\/span><span class=\"nx\">Actions<\/span><span class=\"p\">),<\/span>\n    <span class=\"nx\">placesService<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">inject<\/span><span class=\"p\">(<\/span><span class=\"nx\">PlacesService<\/span><span class=\"p\">),<\/span>\n    <span class=\"nx\">router<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">inject<\/span><span class=\"p\">(<\/span><span class=\"nx\">Router<\/span><span class=\"p\">)<\/span>\n  <span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nx\">actions$<\/span><span class=\"p\">.<\/span><span class=\"nf\">pipe<\/span><span class=\"p\">(<\/span>\n      <span class=\"nf\">ofType<\/span><span class=\"p\">(<\/span><span class=\"nx\">PlacesPageActions<\/span><span class=\"p\">.<\/span><span class=\"nx\">editPlace<\/span><span class=\"p\">),<\/span>\n      <span class=\"nf\">mergeMap<\/span><span class=\"p\">(({<\/span> <span class=\"nx\">id<\/span> <span class=\"p\">})<\/span> <span class=\"o\">=&gt;<\/span>\n        <span class=\"nx\">placesService<\/span><span class=\"p\">.<\/span><span class=\"nf\">getById<\/span><span class=\"p\">(<\/span><span class=\"nx\">id<\/span><span class=\"p\">).<\/span><span class=\"nf\">pipe<\/span><span class=\"p\">(<\/span>\n          <span class=\"nf\">tap<\/span><span class=\"p\">(()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">log<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">get by id<\/span><span class=\"dl\">'<\/span><span class=\"p\">)),<\/span>\n          <span class=\"nf\">map<\/span><span class=\"p\">((<\/span><span class=\"nx\">apiPlace<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n            <span class=\"nx\">router<\/span><span class=\"p\">.<\/span><span class=\"nf\">navigate<\/span><span class=\"p\">([<\/span><span class=\"dl\">'<\/span><span class=\"s1\">\/places<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"nx\">apiPlace<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span><span class=\"p\">]);<\/span>\n            <span class=\"k\">return<\/span> <span class=\"nx\">PlacesApiActions<\/span><span class=\"p\">.<\/span><span class=\"nf\">getPlaceSuccess<\/span><span class=\"p\">({<\/span> <span class=\"na\">place<\/span><span class=\"p\">:<\/span> <span class=\"nx\">apiPlace<\/span> <span class=\"p\">});<\/span>\n          <span class=\"p\">}),<\/span>\n          <span class=\"nf\">catchError<\/span><span class=\"p\">((<\/span><span class=\"nx\">error<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span>\n            <span class=\"k\">of<\/span><span class=\"p\">(<\/span><span class=\"nx\">PlacesApiActions<\/span><span class=\"p\">.<\/span><span class=\"nf\">getPlaceFailure<\/span><span class=\"p\">({<\/span> <span class=\"na\">message<\/span><span class=\"p\">:<\/span> <span class=\"nx\">error<\/span> <span class=\"p\">}))<\/span>\n          <span class=\"p\">)<\/span>\n        <span class=\"p\">)<\/span>\n      <span class=\"p\">)<\/span>\n    <span class=\"p\">);<\/span>\n  <span class=\"p\">},<\/span>\n  <span class=\"p\">{<\/span> <span class=\"na\">functional<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span> <span class=\"p\">}<\/span>\n<span class=\"p\">);<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0645\u0634\u06a9\u0644 \u067e\u06cc\u0645\u0627\u06cc\u0634 \u0641\u0642\u0637 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631 \u062f\u0631 \u0644\u06cc\u0633\u062a \u0645\u06a9\u0627\u0646\u200c\u0647\u0627 \u06a9\u0644\u06cc\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0627\u0645\u0627 \u0647\u0646\u06af\u0627\u0645 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0645\u062c\u062f\u062f \u0635\u0641\u062d\u0647 \u06a9\u0647 \u06a9\u0627\u0631 \u0646\u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0628\u0631\u0637\u0631\u0641 \u06a9\u0631\u062f\u06cc\u0645\u060c \u0632\u06cc\u0631\u0627 \u0648\u0636\u0639\u06cc\u062a \u0645\u0627 \u062f\u0631 \u0645\u0633\u06cc\u0631 \u062c\u062f\u06cc\u062f \u0622\u0645\u0627\u062f\u0647 \u0646\u06cc\u0633\u062a\u060c \u0627\u0645\u0627 \u06af\u0632\u06cc\u0646\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0642\u0644\u0627\u0628\u200c\u0647\u0627\u06cc \u0686\u0631\u062e\u0647 \u0639\u0645\u0631 \u0627\u062b\u0631 \u0631\u0627 \u062f\u0627\u0631\u06cc\u0645.<\/p>\n<p>\u0642\u0644\u0627\u0628\u200c\u0647\u0627\u06cc \u0686\u0631\u062e\u0647 \u062d\u06cc\u0627\u062a \u0627\u0641\u06a9\u062a\u200c\u0647\u0627 \u0628\u0647 \u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u062a\u0627 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0627\u0641\u06a9\u062a\u200c\u0647\u0627 \u062b\u0628\u062a \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u060c \u0627\u06a9\u0634\u0646\u200c\u0647\u0627 \u0631\u0627 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u0645\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0645 \u0627\u06a9\u0634\u0646 loadPlaces \u0631\u0627 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u0645 \u0648 \u062d\u0627\u0644\u062a \u0631\u0627 \u0622\u0645\u0627\u062f\u0647 \u06a9\u0646\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">initPlacesState$<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">createEffect<\/span><span class=\"p\">(<\/span>\n  <span class=\"p\">(<\/span><span class=\"nx\">actions$<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">inject<\/span><span class=\"p\">(<\/span><span class=\"nx\">Actions<\/span><span class=\"p\">))<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nx\">actions$<\/span><span class=\"p\">.<\/span><span class=\"nf\">pipe<\/span><span class=\"p\">(<\/span>\n      <span class=\"nf\">ofType<\/span><span class=\"p\">(<\/span><span class=\"nx\">ROOT_EFFECTS_INIT<\/span><span class=\"p\">),<\/span>\n      <span class=\"nf\">map<\/span><span class=\"p\">((<\/span><span class=\"nx\">action<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nx\">PlacesPageActions<\/span><span class=\"p\">.<\/span><span class=\"nf\">loadPlaces<\/span><span class=\"p\">())<\/span>\n    <span class=\"p\">);<\/span>\n  <span class=\"p\">},<\/span>\n  <span class=\"p\">{<\/span> <span class=\"na\">functional<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span> <span class=\"p\">}<\/span>\n<span class=\"p\">);<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<blockquote>\n<p>\u062f\u0631\u0628\u0627\u0631\u0647 \u0686\u0631\u062e\u0647 \u0639\u0645\u0631 Effect \u0648 ROOT_EFFECTS_INIT \u0628\u06cc\u0634\u062a\u0631 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f<\/p>\n<\/blockquote>\n<p>\u0628\u0633\u06cc\u0627\u0631 \u062e\u0648\u0628\u060c \u0645\u0646 \u0648\u0636\u0639\u06cc\u062a \u0631\u0627 \u0622\u0645\u0627\u062f\u0647 \u06a9\u0631\u062f\u0647 \u0627\u0645\u060c \u0627\u0645\u0627 \u0647\u0646\u0648\u0632 \u0647\u0646\u06af\u0627\u0645 \u062f\u0631\u06cc\u0627\u0641\u062a \u0634\u0646\u0627\u0633\u0647 \u0627\u0632 \u0648\u0636\u0639\u06cc\u062a URL \u0645\u0634\u06a9\u0644 \u062f\u0627\u0631\u0645.<\/p>\n<p>\u06cc\u06a9 \u0631\u0627\u0647 \u062d\u0644 \u0633\u0631\u06cc\u0639 \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f <code>activatedRoute<\/code> \u06a9\u0647 \u062f\u0631 <code>ngOnInit<\/code>.  \u0627\u06af\u0631 <code>id<\/code> \u062d\u0636\u0648\u0631 \u062f\u0627\u0631\u062f\u060c \u0627\u0642\u062f\u0627\u0645 \u0631\u0627 \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f <code>editPlace<\/code>.  \u0627\u06cc\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u0633\u06cc\u0631 \u0645\u06cc \u062f\u0647\u062f \u0648 \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u062f <code>selectedPlace<\/code> \u062d\u0627\u0644\u062a.<\/p>\n<p>\u067e\u0633 \u062a\u0632\u0631\u06cc\u0642 \u06a9\u0646 <code>activatedRoute<\/code> \u062f\u0648\u0628\u0627\u0631\u0647 \u062f\u0631 <code>PlaceEditComponent<\/code> \u0648 \u0645\u0646\u0637\u0642 \u0631\u0627 \u062f\u0631 \u0622\u0646 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f <code>ngOnInit<\/code>.<\/p>\n<p>\u06a9\u062f \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"k\">export<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">PlaceEditComponent<\/span> <span class=\"k\">implements<\/span> <span class=\"nx\">OnInit<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">store<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">inject<\/span><span class=\"p\">(<\/span><span class=\"nx\">Store<\/span><span class=\"p\">);<\/span>\n  <span class=\"nx\">place$<\/span> <span class=\"o\">=<\/span> <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">store<\/span><span class=\"p\">.<\/span><span class=\"nf\">select<\/span><span class=\"p\">(<\/span><span class=\"nx\">PlacesSelectors<\/span><span class=\"p\">.<\/span><span class=\"nx\">selectPlaceSelected<\/span><span class=\"p\">);<\/span>\n  <span class=\"nx\">activatedRoute<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">inject<\/span><span class=\"p\">(<\/span><span class=\"nx\">ActivatedRoute<\/span><span class=\"p\">);<\/span>\n\n  <span class=\"nf\">ngOnInit<\/span><span class=\"p\">():<\/span> <span class=\"k\">void<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">id<\/span> <span class=\"o\">=<\/span> <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">activatedRoute<\/span><span class=\"p\">.<\/span><span class=\"nx\">snapshot<\/span><span class=\"p\">.<\/span><span class=\"nx\">params<\/span><span class=\"p\">[<\/span><span class=\"dl\">'<\/span><span class=\"s1\">id<\/span><span class=\"dl\">'<\/span><span class=\"p\">];<\/span>\n    <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">id<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n      <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">store<\/span><span class=\"p\">.<\/span><span class=\"nf\">dispatch<\/span><span class=\"p\">(<\/span><span class=\"nx\">PlacesPageActions<\/span><span class=\"p\">.<\/span><span class=\"nf\">editPlace<\/span><span class=\"p\">({<\/span> <span class=\"nx\">id<\/span> <span class=\"p\">}));<\/span>\n    <span class=\"p\">}<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f!  \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u06cc\u06a9 \u062f\u06a9\u0645\u0647 \u0644\u063a\u0648 \u0628\u0631\u0627\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u0645\u0633\u06cc\u0631 \u0628\u0647 \u0645\u0633\u06cc\u0631 \u0645\u06a9\u0627\u0646 \u0647\u0627 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u0631\u0648\u06cc\u062f\u0627\u062f \u06a9\u0644\u06cc\u06a9 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u06cc\u06a9 \u0645\u062a\u062f \u062c\u062f\u06cc\u062f\u060c \u0644\u063a\u0648\u060c \u0645\u062a\u0635\u0644 \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"o\"><span class=\"nf\">button <\/span><span class=\"p\">(<\/span><span class=\"nx\">click<\/span><span class=\"p\">)<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">cancel()<\/span><span class=\"dl\">\"<\/span> <span class=\"kd\">class<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">button is-light<\/span><span class=\"dl\">\"<\/span> <span class=\"kd\">type<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">reset<\/span><span class=\"dl\">\"<\/span><span class=\"o\">&gt;<\/span><span class=\"nx\">Cancel<\/span><span class=\"o\"><span class=\"sr\">\/button<\/span><span class=\"err\">&gt;\n<\/span><\/span><\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0647 \u06cc\u0627\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u062a\u0632\u0631\u06cc\u0642 \u06a9\u0646\u06cc\u062f <code>router<\/code> \u0628\u0631\u0627\u06cc \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u062a\u062f \u067e\u06cc\u0645\u0627\u06cc\u0634 \u0628\u0647 URL \u0645\u06a9\u0627\u0646 \u0647\u0627.  \u06a9\u062f \u0646\u0647\u0627\u06cc\u06cc \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"k\">export<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">PlaceEditComponent<\/span> <span class=\"k\">implements<\/span> <span class=\"nx\">OnInit<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">store<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">inject<\/span><span class=\"p\">(<\/span><span class=\"nx\">Store<\/span><span class=\"p\">);<\/span>\n  <span class=\"nx\">place$<\/span> <span class=\"o\">=<\/span> <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">store<\/span><span class=\"p\">.<\/span><span class=\"nf\">select<\/span><span class=\"p\">(<\/span><span class=\"nx\">PlacesSelectors<\/span><span class=\"p\">.<\/span><span class=\"nx\">selectPlaceSelected<\/span><span class=\"p\">);<\/span>\n  <span class=\"nx\">activatedRoute<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">inject<\/span><span class=\"p\">(<\/span><span class=\"nx\">ActivatedRoute<\/span><span class=\"p\">);<\/span>\n  <span class=\"nx\">router<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">inject<\/span><span class=\"p\">(<\/span><span class=\"nx\">Router<\/span><span class=\"p\">);<\/span>\n\n  <span class=\"nf\">ngOnInit<\/span><span class=\"p\">():<\/span> <span class=\"k\">void<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">id<\/span> <span class=\"o\">=<\/span> <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">activatedRoute<\/span><span class=\"p\">.<\/span><span class=\"nx\">snapshot<\/span><span class=\"p\">.<\/span><span class=\"nx\">params<\/span><span class=\"p\">[<\/span><span class=\"dl\">'<\/span><span class=\"s1\">id<\/span><span class=\"dl\">'<\/span><span class=\"p\">];<\/span>\n    <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">id<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n      <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">store<\/span><span class=\"p\">.<\/span><span class=\"nf\">dispatch<\/span><span class=\"p\">(<\/span><span class=\"nx\">PlacesPageActions<\/span><span class=\"p\">.<\/span><span class=\"nf\">editPlace<\/span><span class=\"p\">({<\/span> <span class=\"nx\">id<\/span> <span class=\"p\">}));<\/span>\n    <span class=\"p\">}<\/span>\n  <span class=\"p\">}<\/span>\n\n <span class=\"nf\">cancel<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">router<\/span><span class=\"p\">.<\/span><span class=\"nf\">navigate<\/span><span class=\"p\">([<\/span><span class=\"dl\">'<\/span><span class=\"s1\">\/places<\/span><span class=\"dl\">'<\/span><span class=\"p\">]);<\/span>\n <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0633\u06cc\u0627\u0631 \u062e\u0648\u0628\u060c \u0628\u0627 \u0647\u0645\u0647 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627 \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0627\u0645\u0627 \u0645\u0624\u0644\u0641\u0647 \u0645\u0627 \u0648\u0638\u0627\u06cc\u0641 \u0628\u0633\u06cc\u0627\u0631\u06cc \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u062f\u0647\u062f\u060c \u0645\u0627\u0646\u0646\u062f \u0627\u0631\u0633\u0627\u0644 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0648 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u0633\u06cc\u0631 \u0646\u0627\u0648\u0628\u0631\u06cc.  \u0648\u0642\u062a\u06cc \u0628\u0647 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u0628\u06cc\u0634\u062a\u0631\u06cc \u0646\u06cc\u0627\u0632 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u0645 \u0686\u0647 \u0627\u062a\u0641\u0627\u0642\u06cc \u0645\u06cc \u0627\u0641\u062a\u062f\u061f  \u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0647\u0645\u0647 \u0686\u06cc\u0632 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0631\u0648\u062a\u0631 NgRx \u0633\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0628\u0627\u0639\u062b \u06a9\u0627\u0647\u0634 \u0645\u06cc\u0632\u0627\u0646 \u06a9\u062f \u0648 \u0645\u0633\u0626\u0648\u0644\u06cc\u062a \u062f\u0631 \u0627\u062c\u0632\u0627\u06cc \u0645\u0627 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%DA%86%D8%B1%D8%A7_%D9%81%D8%B1%D9%88%D8%B4%DA%AF%D8%A7%D9%87_%D8%B1%D9%88%D8%AA%D8%B1_NgRx%D8%9F\"><\/span>\n<p>  \u0686\u0631\u0627 \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0631\u0648\u062a\u0631 NgRx\u061f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0631\u0648\u062a\u0631 NgRx \u0627\u062a\u0635\u0627\u0644 \u0648\u0636\u0639\u06cc\u062a \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u06cc \u0631\u0648\u062a\u0631 \u0648 \u062e\u0648\u0627\u0646\u062f\u0646 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0627\u0632 \u0631\u0648\u062a\u0631 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0646\u062a\u062e\u0627\u0628\u06af\u0631\u0647\u0627\u06cc \u062f\u0627\u062e\u0644\u06cc \u0622\u0633\u0627\u0646 \u0645\u06cc\u200c\u06a9\u0646\u062f.  \u06af\u0648\u0634 \u062f\u0627\u062f\u0646 \u0628\u0647 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0631\u0648\u062a\u0631 \u062a\u0639\u0627\u0645\u0644 \u0628\u0627 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0648 \u062c\u0644\u0648\u0647 \u0647\u0627 \u0631\u0627 \u0633\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0627\u062c\u0632\u0627\u06cc \u0645\u0627 \u0631\u0627 \u0627\u0632 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0647\u0627\u06cc \u0627\u0636\u0627\u0641\u06cc \u0645\u0627\u0646\u0646\u062f \u0631\u0648\u062a\u0631 \u06cc\u0627 \u0645\u0633\u06cc\u0631 \u0641\u0639\u0627\u0644 \u062f\u0648\u0631 \u0646\u06af\u0647 \u0645\u06cc \u062f\u0627\u0631\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D9%82%D8%AF%D8%A7%D9%85%D8%A7%D8%AA_%D8%B1%D9%88%D8%AA%D8%B1\"><\/span>\n<p>  \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0631\u0648\u062a\u0631<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0631\u0648\u062a\u0631 NgRx \u067e\u0646\u062c \u0639\u0645\u0644\u06a9\u0631\u062f \u0631\u0648\u062a\u0631 \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f\u060c \u0627\u06cc\u0646 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0628\u0647 \u062a\u0631\u062a\u06cc\u0628 \u0645\u0627\u0634\u0647 \u0647\u0633\u062a\u0646\u062f<\/p>\n<ul>\n<li>\n<p>ROUTER_REQUEST: \u0647\u0646\u06af\u0627\u0645 \u0634\u0631\u0648\u0639 \u06cc\u06a9 \u0646\u0627\u0648\u0628\u0631\u06cc.<\/p>\n<\/li>\n<li>\n<p>ROUTER_NAVIGATION: \u0642\u0628\u0644 \u0627\u0632 \u0645\u062d\u0627\u0641\u0638 \u0648 \u0647\u0641\u062a \u062a\u06cc\u0631\u060c \u062f\u0631 \u062d\u06cc\u0646 \u0646\u0627\u0648\u0628\u0631\u06cc \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<\/li>\n<li>\n<p>\u0631\u0648\u062a\u0631\u061f \u0646\u0627\u0648\u0628\u0631\u06cc: \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0646\u0627\u0648\u0628\u0631\u06cc \u06a9\u0627\u0645\u0644 \u0634\u062f.<\/p>\n<\/li>\n<li>\n<p>ROUTER_CANCEL: \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0646\u0627\u0648\u0628\u0631\u06cc \u0644\u063a\u0648 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<\/li>\n<li>\n<p>ROUTER_ERROR: \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u062e\u0637\u0627\u06cc\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f.<\/p>\n<\/li>\n<\/ul>\n<blockquote>\n<p>\u062f\u0631\u0628\u0627\u0631\u0647 ROUTER_ACTIONS \u0628\u06cc\u0634\u062a\u0631 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f<\/p>\n<\/blockquote>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D9%86%D8%AA%D8%AE%D8%A7%D8%A8%DA%AF%D8%B1%D9%87%D8%A7%DB%8C_%D9%85%D8%B3%DB%8C%D8%B1%DB%8C%D8%A7%D8%A8\"><\/span>\n<p>  \u0627\u0646\u062a\u062e\u0627\u0628\u06af\u0631\u0647\u0627\u06cc \u0645\u0633\u06cc\u0631\u06cc\u0627\u0628<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u06cc\u0646 \u0628\u0647 \u062e\u0648\u0627\u0646\u062f\u0646 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0627\u0632 \u0631\u0648\u062a\u0631\u060c \u0645\u0627\u0646\u0646\u062f \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u067e\u0631\u0633 \u0648 \u062c\u0648\u060c \u062f\u0627\u062f\u0647 \u0647\u0627\u060c \u0639\u0646\u0648\u0627\u0646 \u0648 \u0645\u0648\u0627\u0631\u062f \u062f\u06cc\u06af\u0631\u060c \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0644\u06cc\u0633\u062a\u06cc \u0627\u0632 \u0627\u0646\u062a\u062e\u0627\u0628\u06af\u0631\u0647\u0627\u06cc \u062f\u0627\u062e\u0644\u06cc \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u062a\u0627\u0628\u0639 \u06a9\u0645\u06a9 \u0645\u06cc \u06a9\u0646\u062f. <code>getRouterSelectors<\/code>.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">selectQueryParam<\/span><span class=\"p\">,<\/span> <span class=\"nx\">selectRouteParam<\/span><span class=\"p\">}<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">getRouterSelectors<\/span><span class=\"p\">()<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<blockquote>\n<p>\u062f\u0631\u0628\u0627\u0631\u0647 \u0627\u0646\u062a\u062e\u0627\u0628\u06af\u0631\u0647\u0627\u06cc \u0645\u0633\u06cc\u0631\u06cc\u0627\u0628 \u0628\u06cc\u0634\u062a\u0631 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f<\/p>\n<\/blockquote>\n<p>\u0627\u0632 \u0622\u0646\u062c\u0627 \u06a9\u0647\u060c \u0645\u0627 \u06cc\u06a9 \u0646\u0645\u0627\u06cc \u06a9\u0644\u06cc \u0627\u0632 \u0631\u0648\u062a\u0631 NgRx \u062f\u0627\u0631\u06cc\u0645\u060c \u067e\u0633 \u0628\u06cc\u0627\u06cc\u06cc\u062f \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0622\u0646 \u0631\u0627 \u062f\u0631 \u067e\u0631\u0648\u0698\u0647 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u0645.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B1%D9%88%D8%AA%D8%B1_NgRx_%D8%B1%D8%A7_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u0631\u0648\u062a\u0631 NgRx \u0631\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u06cc\u062f \u0631\u0648\u062a\u0631 NgRx \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u0645.  \u0627\u0646\u062a\u062e\u0627\u0628\u06af\u0631\u0647\u0627\u06cc\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0627\u0632 \u0631\u0648\u062a\u0631 \u0648 \u062a\u0631\u06a9\u06cc\u0628 \u0628\u0627 \u0627\u0646\u062a\u062e\u0627\u0628\u06af\u0631\u0647\u0627\u06cc \u062f\u06cc\u06af\u0631 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0647\u0634 \u0635\u0641\u062d\u0647 \u062f\u06cc\u06af \u062f\u0631 \u0627\u062c\u0632\u0627\u06cc \u0645\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u062f\u0631 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644\u060c ngrx\/router-store \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0634\u0645\u0627\u062a\u06cc\u06a9 \u0647\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>ng add @ngrx\/router-store\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0639\u062f\u060c \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f <code>app.config<\/code> \u0648 \u062b\u0628\u062a \u0646\u0627\u0645 \u06a9\u0646\u06cc\u062f <code>routerReducer<\/code> \u0648 <code>provideRouterStore<\/code>.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code>  <span class=\"nx\">providers<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span>\n    <span class=\"p\">...,<\/span>\n    <span class=\"nf\">provideStore<\/span><span class=\"p\">({<\/span>\n      <span class=\"na\">router<\/span><span class=\"p\">:<\/span> <span class=\"nx\">routerReducer<\/span><span class=\"p\">,<\/span>\n      <span class=\"na\">home<\/span><span class=\"p\">:<\/span> <span class=\"nx\">homeReducer<\/span><span class=\"p\">,<\/span>\n      <span class=\"na\">places<\/span><span class=\"p\">:<\/span> <span class=\"nx\">placesReducer<\/span><span class=\"p\">,<\/span>\n    <span class=\"p\">}),<\/span>\n    <span class=\"p\">...<\/span>\n    <span class=\"nf\">provideRouterStore<\/span><span class=\"p\">(),<\/span>\n  <span class=\"p\">],<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0645\u0627 \u0631\u0648\u062a\u0631 NgRx \u0631\u0627 \u062f\u0631 \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u062f\u0627\u0631\u06cc\u0645\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0627\u06a9\u0646\u0648\u0646 \u0632\u0645\u0627\u0646 \u06a9\u0627\u0631 \u0628\u0627 \u0622\u0646 \u0627\u0633\u062a!<\/p>\n<blockquote>\n<p>\u062f\u0631\u0628\u0627\u0631\u0647 \u0646\u0635\u0628 \u0631\u0648\u062a\u0631 NgRx \u0628\u06cc\u0634\u062a\u0631 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f<\/p>\n<\/blockquote>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A8%D8%A7_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_NgRx_RouterSelectors_%D8%B3%D8%A7%D8%AF%D9%87_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 NgRx RouterSelectors \u0633\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0647 \u062c\u0627\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a HTTP\u060c \u0627\u0632 \u0648\u0636\u0639\u06cc\u062a \u062e\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u0645 \u0632\u06cc\u0631\u0627 \u0627\u0641\u06a9\u062a ngrx init \u0647\u0645\u06cc\u0634\u0647 \u0647\u0646\u06af\u0627\u0645 \u062b\u0628\u062a \u0627\u062b\u0631\u060c \u0648\u0636\u0639\u06cc\u062a \u0645\u0646 \u0631\u0627 \u0628\u0647 \u0631\u0648\u0632 \u0645\u06cc \u06a9\u0646\u062f.  \u0627\u06cc\u0646 \u0628\u062f\u0627\u0646 \u0645\u0639\u0646\u0627\u0633\u062a \u06a9\u0647 \u0645\u0646 \u0622\u062e\u0631\u06cc\u0646 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0631\u0627 \u062f\u0627\u0631\u0645.  \u0645\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u0645 \u062a\u0631\u06a9\u06cc\u0628 \u06a9\u0646\u0645 <code>selectPlaces<\/code> \u0627\u0646\u062a\u062e\u0627\u0628\u06af\u0631 \u0628\u0627 <code>selectRouterParams<\/code> \u0628\u0631\u0627\u06cc \u0628\u062f\u0633\u062a \u0622\u0648\u0631\u062f\u0646 <code>selectPlaceById<\/code>.<\/p>\n<p>\u0628\u0627\u0632 \u06a9\u0646 <code>places.selector.ts<\/code> \u0641\u0627\u06cc\u0644\u060c \u0627\u06cc\u062c\u0627\u062f \u0648 \u0635\u0627\u062f\u0631 \u06a9\u0631\u062f\u0646 \u06cc\u06a9 \u0627\u0646\u062a\u062e\u0627\u0628\u06af\u0631 \u062c\u062f\u06cc\u062f \u0628\u0627 \u062a\u0631\u06a9\u06cc\u0628 <code>selectPlaces<\/code> \u0648 <code>selectRouteParams<\/code>.<\/p>\n<p>\u06a9\u062f \u0646\u0647\u0627\u06cc\u06cc \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">selectRouteParams<\/span> <span class=\"p\">}<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">getRouterSelectors<\/span><span class=\"p\">();<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">selectPlaceById<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">createSelector<\/span><span class=\"p\">(<\/span>\n  <span class=\"nx\">selectPlaces<\/span><span class=\"p\">,<\/span>\n  <span class=\"nx\">selectRouteParams<\/span><span class=\"p\">,<\/span>\n  <span class=\"p\">(<\/span><span class=\"nx\">places<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">id<\/span> <span class=\"p\">})<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nx\">places<\/span><span class=\"p\">.<\/span><span class=\"nf\">find<\/span><span class=\"p\">((<\/span><span class=\"nx\">place<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nx\">place<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span> <span class=\"o\">===<\/span> <span class=\"nx\">id<\/span><span class=\"p\">),<\/span>\n<span class=\"p\">);<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"p\">{<\/span>\n  <span class=\"na\">placesSelector<\/span><span class=\"p\">:<\/span> <span class=\"nx\">selectPlaces<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">selectPlaceSelected<\/span><span class=\"p\">:<\/span> <span class=\"nx\">selectPlaceSelected<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">loadingSelector<\/span><span class=\"p\">:<\/span> <span class=\"nx\">selectLoading<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">errorSelector<\/span><span class=\"p\">:<\/span> <span class=\"nx\">selectError<\/span><span class=\"p\">,<\/span>\n  <span class=\"nx\">selectPlaceById<\/span><span class=\"p\">,<\/span>\n<span class=\"p\">};<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0639\u0627\u0644\u06cc\u060c \u0627\u06a9\u0646\u0648\u0646 \u0632\u0645\u0627\u0646 \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u0648 \u06a9\u0627\u0647\u0634 \u0647\u0645\u0647 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0647\u0627 \u062f\u0631 \u0627\u0633\u062a <code>PlaceEditComponent<\/code>\u0648 \u0627\u0632 \u0627\u0646\u062a\u062e\u0627\u0628\u06af\u0631 \u062c\u062f\u06cc\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f <code>PlacesSelectors.selectPlaceById<\/code>.  \u06a9\u062f \u0646\u0647\u0627\u06cc\u06cc \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"nb\">export <\/span>class PlaceEditComponent <span class=\"o\">{<\/span>\n  store <span class=\"o\">=<\/span> inject<span class=\"o\">(<\/span>Store<span class=\"o\">)<\/span><span class=\"p\">;<\/span>\n  place<span class=\"nv\">$ <\/span><span class=\"o\">=<\/span> this.store.select<span class=\"o\">(<\/span>PlacesSelectors.selectPlaceById<span class=\"o\">)<\/span><span class=\"p\">;<\/span>\n<span class=\"o\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0633\u06cc\u0627\u0631 \u062e\u0648\u0628\u060c \u0627\u0645\u0627 \u062f\u0631 \u0645\u0648\u0631\u062f \u06a9\u0646\u0634 \u0644\u063a\u0648 \u0648 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u0633\u06cc\u0631 \u0686\u0637\u0648\u0631\u061f  \u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u06cc\u06a9 \u0627\u0642\u062f\u0627\u0645 \u062c\u062f\u06cc\u062f \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u0645\u060c <code>cancel<\/code>\u060c \u0628\u0631\u0627\u06cc \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u0627\u06cc\u0646 \u062f\u0631 \u0627\u062b\u0631.<\/p>\n<p>\u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f <code>places.action.ts<\/code> \u0648 \u0639\u0645\u0644 \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f <code>'Cancel Place': emptyProps()<\/code>.  \u06a9\u062f \u0646\u0647\u0627\u06cc\u06cc \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code> <span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">PlacesPageActions<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">createActionGroup<\/span><span class=\"p\">({<\/span>\n  <span class=\"na\">source<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Places<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">events<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n    <span class=\"dl\">'<\/span><span class=\"s1\">Load Places<\/span><span class=\"dl\">'<\/span><span class=\"p\">:<\/span> <span class=\"nf\">emptyProps<\/span><span class=\"p\">(),<\/span>\n    <span class=\"dl\">'<\/span><span class=\"s1\">Add Place<\/span><span class=\"dl\">'<\/span><span class=\"p\">:<\/span> <span class=\"nx\">props<\/span><span class=\"o\"><span class=\"p\">{<\/span> <span class=\"na\">place<\/span><span class=\"p\">:<\/span> <span class=\"nx\">Place<\/span> <span class=\"p\">}<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">(),<\/span>\n    <span class=\"dl\">'<\/span><span class=\"s1\">Update Place<\/span><span class=\"dl\">'<\/span><span class=\"p\">:<\/span> <span class=\"nx\">props<\/span><span class=\"o\"><span class=\"p\">{<\/span> <span class=\"na\">place<\/span><span class=\"p\">:<\/span> <span class=\"nx\">Place<\/span> <span class=\"p\">}<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">(),<\/span>\n    <span class=\"dl\">'<\/span><span class=\"s1\">Delete Place<\/span><span class=\"dl\">'<\/span><span class=\"p\">:<\/span> <span class=\"nx\">props<\/span><span class=\"o\"><span class=\"p\">{<\/span> <span class=\"na\">id<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span> <span class=\"p\">}<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">(),<\/span>\n    <span class=\"dl\">'<\/span><span class=\"s1\">Cancel Place<\/span><span class=\"dl\">'<\/span><span class=\"p\">:<\/span> <span class=\"nf\">emptyProps<\/span><span class=\"p\">(),<\/span>\n    <span class=\"dl\">'<\/span><span class=\"s1\">Select Place<\/span><span class=\"dl\">'<\/span><span class=\"p\">:<\/span> <span class=\"nx\">props<\/span><span class=\"o\"><span class=\"p\">{<\/span> <span class=\"na\">place<\/span><span class=\"p\">:<\/span> <span class=\"nx\">Place<\/span> <span class=\"p\">}<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">(),<\/span>\n    <span class=\"dl\">'<\/span><span class=\"s1\">UnSelect Place<\/span><span class=\"dl\">'<\/span><span class=\"p\">:<\/span> <span class=\"nf\">emptyProps<\/span><span class=\"p\">(),<\/span>\n  <span class=\"p\">},<\/span>\n<span class=\"p\">});<\/span>\n<\/span><\/span><\/span><\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u0631\u0648\u0634 \u0644\u063a\u0648 \u062f\u0631 <code>PlacesComponent<\/code> \u0648 \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f <code>cancelPlace<\/code> \u0639\u0645\u0644.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code> <span class=\"nf\">cancel<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span> \n    <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"err\">#<\/span><span class=\"nx\">store<\/span><span class=\"p\">.<\/span><span class=\"nf\">dispatch<\/span><span class=\"p\">(<\/span><span class=\"nx\">PlacesPageActions<\/span><span class=\"p\">.<\/span><span class=\"nf\">cancelPlace<\/span><span class=\"p\">());<\/span>\n  <span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0645\u0631\u062d\u0644\u0647 \u0622\u062e\u0631 \u0628\u0627\u0632 \u06a9\u0631\u062f\u0646 \u0627\u0633\u062a <code>place.effect.ts<\/code>\u060c \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 <code>returnHomeEffects<\/code> \u0627\u062b\u0631\u060c \u062a\u0632\u0631\u06cc\u0642 \u0631\u0648\u062a\u0631\u060c \u0648 \u06af\u0648\u0634 \u062f\u0627\u062f\u0646 \u0628\u0647 <code>cancelPlace<\/code> \u0639\u0645\u0644.  \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f <code>router.navigate<\/code> \u0628\u0631\u0627\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u0645\u0633\u06cc\u0631 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0627\u0642\u062f\u0627\u0645 \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">returnHomeEffect$<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">createEffect<\/span><span class=\"p\">(<\/span>\n  <span class=\"p\">(<\/span><span class=\"nx\">actions$<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">inject<\/span><span class=\"p\">(<\/span><span class=\"nx\">Actions<\/span><span class=\"p\">),<\/span> <span class=\"nx\">router<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">inject<\/span><span class=\"p\">(<\/span><span class=\"nx\">Router<\/span><span class=\"p\">))<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nx\">actions$<\/span><span class=\"p\">.<\/span><span class=\"nf\">pipe<\/span><span class=\"p\">(<\/span>\n      <span class=\"nf\">ofType<\/span><span class=\"p\">(<\/span><span class=\"nx\">PlacesPageActions<\/span><span class=\"p\">.<\/span><span class=\"nx\">cancelPlace<\/span><span class=\"p\">),<\/span>\n      <span class=\"nf\">tap<\/span><span class=\"p\">(()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nx\">router<\/span><span class=\"p\">.<\/span><span class=\"nf\">navigate<\/span><span class=\"p\">([<\/span><span class=\"dl\">'<\/span><span class=\"s1\">\/places<\/span><span class=\"dl\">'<\/span><span class=\"p\">])),<\/span>\n    <span class=\"p\">);<\/span>\n  <span class=\"p\">},<\/span>\n  <span class=\"p\">{<\/span>\n    <span class=\"na\">dispatch<\/span><span class=\"p\">:<\/span> <span class=\"kc\">false<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">functional<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\n  <span class=\"p\">},<\/span>\n<span class=\"p\">);<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0622\u062e\u0631\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u06a9\u0627\u0631\u062a \u0645\u06a9\u0627\u0646 \u0628\u0631\u0627\u06cc \u0627\u0631\u0633\u0627\u0644 \u0627\u06a9\u0634\u0646 SelectPlace \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 a \u0627\u0633\u062a <code>routerLink<\/code>.<\/p>\n<p>\u0627\u0646\u062c\u0627\u0645 \u0634\u062f\u0647!  \u0645\u0627 \u0622\u0646 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f\u06cc\u0645!  \u0645\u0627 \u0631\u0648\u062a\u0631 \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0631\u062f\u06cc\u0645 \u0648 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0647\u0627\u06cc \u0645\u0633\u06cc\u0631 \u0631\u0627 \u0641\u0639\u0627\u0644 \u06a9\u0631\u062f\u06cc\u0645\u060c \u067e\u0627\u0631\u0627\u0645\u062a\u0631 URL \u0631\u0627 \u0647\u0645\u06af\u0627\u0645 \u0646\u06af\u0647 \u062f\u0627\u0634\u062a\u06cc\u0645 \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0627 \u0627\u0646\u062a\u062e\u0627\u0628\u06af\u0631\u0647\u0627\u06cc \u0631\u0648\u062a\u0631 \u062a\u0631\u06a9\u06cc\u0628 \u06a9\u0631\u062f\u06cc\u0645.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%AE%D9%84%D8%A7%D8%B5%D9%87\"><\/span>\n<p>  \u062e\u0644\u0627\u0635\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0645\u0646 \u06cc\u0627\u062f \u06af\u0631\u0641\u062a\u0645 \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL \u0628\u0627 NgRx Router Store \u062f\u0631 Angular\u060c \u062d\u0627\u0644\u062a \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u0645.  \u0645\u0646 \u0647\u0645\u0686\u0646\u06cc\u0646 NgRx \u0631\u0627 \u0628\u0627 Angular Router \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u0648\u0636\u0639\u06cc\u062a \u0648 \u0646\u0627\u0648\u0628\u0631\u06cc \u0627\u062f\u063a\u0627\u0645 \u06a9\u0631\u062f\u0645 \u0648 \u0627\u062c\u0632\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u062a\u0645\u06cc\u0632 \u0646\u06af\u0647 \u062f\u0627\u0634\u062a\u0645.  \u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f \u0628\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0628\u0647\u062a\u0631 \u062d\u0627\u0644\u062a \u06a9\u0645\u06a9 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0628\u0627 \u0627\u0646\u062a\u062e\u0627\u0628\u06af\u0631\u0647\u0627\u06cc \u0645\u0633\u06cc\u0631\u06cc\u0627\u0628 \u062a\u0631\u06a9\u06cc\u0628 \u0645\u06cc \u0634\u0648\u062f \u062a\u0627 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0631\u0648\u062a\u0631 \u0631\u0627 \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0628\u062e\u0648\u0627\u0646\u062f.<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0645\u0627 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc\u06cc \u0631\u0627 \u0628\u0627 \u062d\u0627\u0644\u062a \u0645\u06cc\u200c\u0633\u0627\u0632\u06cc\u0645\u060c \u0646\u0642\u0637\u0647 \u0648\u0631\u0648\u062f \u06a9\u0644\u06cc\u062f\u06cc \u0628\u0631\u0627\u06cc \u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0648\u0636\u0639\u06cc\u062a \u0645\u0627 \u0628\u0631\u0627\u06cc \u0627\u062c\u0632\u0627\u06cc \u0645\u0627 \u0627\u0633\u062a\u060c \u0627\u0645\u0627 \u06af\u0627\u0647\u06cc \u0627\u0648\u0642\u0627\u062a\u060c \u0645\u0627 \u0627\u0644\u0632\u0627\u0645\u0627\u062a\u06cc \u0628\u0631\u0627\u06cc \u062d\u0641\u0638 \u0648\u0636\u0639\u06cc\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u062f\u0631 URL \u062f\u0627\u0631\u06cc\u0645 \u062a\u0627 \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u0645 \u062a\u0627 \u062d\u0627\u0644\u062a\u200c\u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0627\u0635 \u0631\u0627 \u0646\u0634\u0627\u0646\u0647\u200c\u06af\u0630\u0627\u0631\u06cc \u06a9\u0646\u0646\u062f \u06cc\u0627 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0628\u06af\u0630\u0627\u0631\u0646\u062f\u060c \u0628\u0627 \u0647\u062f\u0641 \u0628\u0647\u0628\u0648\u062f \u06a9\u0627\u0631\u0628\u0631. \u062a\u062c\u0631\u0628\u0647 \u06a9\u0646\u06cc\u062f \u0648 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":72656,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-72650","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/72650","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=72650"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/72650\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/72656"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=72650"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=72650"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=72650"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}