{"id":26846,"date":"2017-09-16T19:16:39","date_gmt":"2017-09-16T16:16:39","guid":{"rendered":"http:\/\/kamil-abzalov.com\/tutorials\/angular-filters-create-your-own-filters\/"},"modified":"2020-04-10T23:34:09","modified_gmt":"2020-04-10T20:34:09","slug":"angular-filters-create-your-own-filters","status":"publish","type":"post","link":"https:\/\/kamil-abzalov.com\/en\/tutorials\/javascript\/angular-filters-create-your-own-filters\/","title":{"rendered":"Angular filters. Create your own filters"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; fullwidth=&#8221;on&#8221; _builder_version=&#8221;3.22&#8243;][et_pb_fullwidth_header title=&#8221;Angular filters. Create your own filters&#8221; content_max_width=&#8221;none&#8221; _builder_version=&#8221;3.16&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; button_one_letter_spacing_hover=&#8221;0&#8243; button_two_letter_spacing_hover=&#8221;0&#8243; button_one_text_size__hover_enabled=&#8221;off&#8221; button_two_text_size__hover_enabled=&#8221;off&#8221; button_one_text_color__hover_enabled=&#8221;off&#8221; button_two_text_color__hover_enabled=&#8221;off&#8221; button_one_border_width__hover_enabled=&#8221;off&#8221; button_two_border_width__hover_enabled=&#8221;off&#8221; button_one_border_color__hover_enabled=&#8221;off&#8221; button_two_border_color__hover_enabled=&#8221;off&#8221; button_one_border_radius__hover_enabled=&#8221;off&#8221; button_two_border_radius__hover_enabled=&#8221;off&#8221; button_one_letter_spacing__hover_enabled=&#8221;on&#8221; button_one_letter_spacing__hover=&#8221;0&#8243; button_two_letter_spacing__hover_enabled=&#8221;on&#8221; button_two_letter_spacing__hover=&#8221;0&#8243; button_one_bg_color__hover_enabled=&#8221;off&#8221; button_two_bg_color__hover_enabled=&#8221;off&#8221;][\/et_pb_fullwidth_header][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; admin_label=&#8221;section&#8221; _builder_version=&#8221;3.22&#8243;][et_pb_row admin_label=&#8221;row&#8221; _builder_version=&#8221;3.25&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_padding=&#8221;0px|||&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_dcsbcm_divi_breadcrumbs_module homebreadcrumbtext=&#8221;Home&#8221; hide_currentbreadcrumb=&#8221;off&#8221; _builder_version=&#8221;4.4.2&#8243; custom_padding=&#8221;0px|||&#8221; hover_enabled=&#8221;0&#8243; fontsbreadcrumbs_font_size_tablet=&#8221;51&#8243; fontsbreadcrumbs_line_height_tablet=&#8221;2&#8243; fontsseperator_font_size_tablet=&#8221;51&#8243; fontsseperator_line_height_tablet=&#8221;2&#8243; fontsbreadcrumblinks_font_size_tablet=&#8221;51&#8243; fontsbreadcrumblinks_line_height_tablet=&#8221;2&#8243;][\/et_pb_dcsbcm_divi_breadcrumbs_module][et_pb_text _builder_version=&#8221;3.27.4&#8243; module_alignment=&#8221;left&#8221; border_style=&#8221;solid&#8221;]In this tutorial we&#8217;ll discuss filters in angular. Angular has got several build-in filters. Also we will create our custom filter with filter method.<br \/>\n[\/et_pb_text][et_pb_video src=&#8221;https:\/\/www.youtube.com\/watch?v=gkufoz0sjCE&#8221; _builder_version=&#8221;3.0.75&#8243;][\/et_pb_video][et_pb_text _builder_version=&#8221;3.27.4&#8243; module_alignment=&#8221;left&#8221; border_style=&#8221;solid&#8221;]There are the list of build-in filters below:<\/p>\n<ul>\n<li>uppercase formats string to uppercase.<\/li>\n<li>lowercase formats string to lowercase.<\/li>\n<li>number formats a number to string.<\/li>\n<li>limitTo limit input of data based of specified number.<\/li>\n<li>date formats date to specified format.<\/li>\n<li>currency formats a number to currency.<\/li>\n<li>filter chooses elements from the specified array.<\/li>\n<\/ul>\n<p>[\/et_pb_text][et_pb_dmb_code_snippet title=&#8221;Code lesson (build-in filters)&#8221; code=&#8221;PCFET0NUWVBFIGh0bWw+CjxodG1sIG5nLWFwcD0iZmlsdGVyc0FwcCI+CiAgICA8aGVhZD4KICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgICAgICAgPHRpdGxlPjwvdGl0bGU+CiAgICAgICAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4zLjcvY3NzL2Jvb3RzdHJhcC5taW4uY3NzIiByZWw9InN0eWxlc2hlZXQiPgogICAgPC9oZWFkPgogICAgPGJvZHkgbmctY29udHJvbGxlcj0iZmlsdGVyQ3RybCI+CgogICAgICAgIDxwPnt7dXBwZXJXb3JkIHwgdXBwZXJjYXNlfX08L3A+CiAgICAgICAgPHA+e3tsb3dlcldvcmQgfCBsb3dlcmNhc2V9fTwvcD4KICAgICAgICA8cD57ezQ1Ni43OCB8IG51bWJlcjoxfX08L3A+CiAgICAgICAgPHA+e3s1MCB8IGN1cnJlbmN5fX08L3A+CiAgICAgICAgPHA+e3sxMjgzNDU1NDY0NSB8IGRhdGU6ICdkZC5tbS55eXl5J319PC9wPgoKCiAgICAgICAgPHNjcmlwdCBzcmM9ImFuZ3VsYXIuanMiPjwvc2NyaXB0PgogICAgICAgIDxzY3JpcHQ+CiAgICAgICAgICAgIHZhciBhcHAgPSBhbmd1bGFyLm1vZHVsZSgiZmlsdGVyc0FwcCIsIFtdKTsKCiAgICAgICAgICAgIGFwcC5jb250cm9sbGVyKCdmaWx0ZXJDdHJsJywgZnVuY3Rpb24oJHNjb3BlKXsKICAgICAgICAgICAgICAgICRzY29wZS51cHBlcldvcmQgPSAi0JrQsNC80LjQu9GMIjsKICAgICAgICAgICAgICAgICRzY29wZS5sb3dlcldvcmQgPSAi0JrQsNC80LjQu9GMIjsKICAgICAgICAgICAgfSk7CgogICAgICAgIDwvc2NyaXB0PgoKICAgIDwvYm9keT4KPC9odG1sPgo=&#8221; admin_label=&#8221;\u041a\u043e\u0434 \u0443\u0440\u043e\u043a\u0430&#8221; style=&#8221;docco&#8221; linenums=&#8221;on&#8221; usetabwidth=&#8221;on&#8221; tabwidth=&#8221;4&#8243; _builder_version=&#8221;4.4.2&#8243; hover_enabled=&#8221;0&#8243;]PCFET0NUWVBFIGh0bWw+CjxodG1sIG5nLWFwcD0iZmlsdGVyc0FwcCI+CiAgICA8aGVhZD4KICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgICAgICAgPHRpdGxlPjwvdGl0bGU+CiAgICAgICAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4zLjcvY3NzL2Jvb3RzdHJhcC5taW4uY3NzIiByZWw9InN0eWxlc2hlZXQiPgogICAgPC9oZWFkPgogICAgPGJvZHkgbmctY29udHJvbGxlcj0iZmlsdGVyQ3RybCI+CgogICAgICAgIDxwPnt7dXBwZXJXb3JkIHwgdXBwZXJjYXNlfX08L3A+CiAgICAgICAgPHA+e3tsb3dlcldvcmQgfCBsb3dlcmNhc2V9fTwvcD4KICAgICAgICA8cD57ezQ1Ni43OCB8IG51bWJlcjoxfX08L3A+CiAgICAgICAgPHA+e3s1MCB8IGN1cnJlbmN5fX08L3A+CiAgICAgICAgPHA+e3sxMjgzNDU1NDY0NSB8IGRhdGU6ICdkZC5tbS55eXl5J319PC9wPgoKCiAgICAgICAgPHNjcmlwdCBzcmM9ImFuZ3VsYXIuanMiPjwvc2NyaXB0PgogICAgICAgIDxzY3JpcHQ+CiAgICAgICAgICAgIHZhciBhcHAgPSBhbmd1bGFyLm1vZHVsZSgiZmlsdGVyc0FwcCIsIFtdKTsKCiAgICAgICAgICAgIGFwcC5jb250cm9sbGVyKCdmaWx0ZXJDdHJsJywgZnVuY3Rpb24oJHNjb3BlKXsKICAgICAgICAgICAgICAgICRzY29wZS51cHBlcldvcmQgPSAi0JrQsNC80LjQu9GMIjsKICAgICAgICAgICAgICAgICRzY29wZS5sb3dlcldvcmQgPSAi0JrQsNC80LjQu9GMIjsKICAgICAgICAgICAgfSk7CgogICAgICAgIDwvc2NyaXB0PgoKICAgIDwvYm9keT4KPC9odG1sPgo=[\/et_pb_dmb_code_snippet][et_pb_text _builder_version=&#8221;3.27.4&#8243; module_alignment=&#8221;left&#8221; border_style=&#8221;solid&#8221;]As you understood from last lessons, filters  were written after straight line.<br \/>\nThrough a two-way data binding in angular we can use filters with different events &#8211; for example, filter by click or filter by user input. In examples it is <strong>sortByName<\/strong> filter and <strong>filter with selectPlayers model (live search)<\/strong> accordingly.<\/p>\n<p>But like any framework, angular concepts are developers can expand opportunities of build in functionality. In our case it is creation of custom filters. For this purpose angular has got <a href=\"https:\/\/docs.angularjs.org\/guide\/filter\" target=\"_blank\" rel=\"noopener noreferrer\">filter method<\/a>. It has got two parameters &#8211; filter name and function, which will filter data.<br \/>\n[\/et_pb_text][et_pb_dmb_code_snippet title=&#8221;Code lesson&#8221; code=&#8221;PCFET0NUWVBFIGh0bWw+CjxodG1sIG5nLWFwcD0icGxheWVyc0FwcCI+CiAgICA8aGVhZD4KICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgICAgICAgPHRpdGxlPjwvdGl0bGU+CiAgICAgICAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4zLjcvY3NzL2Jvb3RzdHJhcC5taW4uY3NzIiByZWw9InN0eWxlc2hlZXQiPgogICAgICAgIDxzdHlsZT4KICAgICAgICAgICAgLyppbnB1dC5uZy1pbnZhbGlkLXJlcXVpcmVkIHsKICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJlZDsKICAgICAgICAgICAgfSovCiAgICAgICAgPC9zdHlsZT4KICAgIDwvaGVhZD4KICAgIDxib2R5PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiIG5nLWNvbnRyb2xsZXI9InBsYXllckN0cmwiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTEyIj4KICAgICAgICAgICAgICAgICAgICA8Zm9ybSBjbGFzcz0iZm9ybS1ob3Jpem9udGFsIiBuYW1lPSJhZGRQbGF5ZXJGb3JtIiBub3ZhbGlkYXRlPgogICAgICAgICAgICAgICAgICAgICAgICA8bGVnZW5kPtCh0L\/QuNGB0L7QuiDRhNGD0YLQsdC+0LvQuNGB0YLQvtCyPC9sZWdlbmQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCIgbmctY2xhc3M9InsnaGFzLWVycm9yJzogYWRkUGxheWVyRm9ybS5wTmFtZS4kZXJyb3IucmVxdWlyZWQgJiYgYWRkUGxheWVyRm9ybS5wTmFtZS4kZGlydHl9Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9InBsYXllck5hbWUiIGNsYXNzPSJjb2wtc20tNCBjb250cm9sLWxhYmVsIj7QmNC80Y8g0LjQs9GA0L7QutCwPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS04Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHJlcXVpcmVkIG5hbWU9InBOYW1lIiBuZy1tb2RlbD0icGxheWVyTmFtZSIgY2xhc3M9ImZvcm0tY29udHJvbCIgaWQ9InBsYXllck5hbWUiIHBsYWNlaG9sZGVyPSLQmNC80Y8g0LjQs9GA0L7QutCwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVycm9yIiBuZy1zaG93PSJhZGRQbGF5ZXJGb3JtLnBOYW1lLiRkaXJ0eSAmJiBhZGRQbGF5ZXJGb3JtLnBOYW1lLiRlcnJvci5yZXF1aXJlZCI+0JLQstC10LTQuNGC0LUg0LjQvNGPINC40LPRgNC+0LrQsCE8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9InBsYXllclRlYW0iIGNsYXNzPSJjb2wtc20tNCBjb250cm9sLWxhYmVsIj7QkiDQutCw0LrQvtC5INC60L7QvNCw0L3QtNC1INC40LPRgNCw0LXRgjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tOCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJwVGVhbSIgbmctbW9kZWw9InBsYXllclRlYW0iIGNsYXNzPSJmb3JtLWNvbnRyb2wiIGlkPSJwbGF5ZXJUZWFtIiBwbGFjZWhvbGRlcj0i0JIg0LrQsNC60L7QuSDQutC+0LzQsNC90LTQtSDQuNCz0YDQsNC10YIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCIgbmctY2xhc3M9InsnaGFzLWVycm9yJzogYWRkUGxheWVyRm9ybS5wQ291bnRyeS4kZXJyb3IucmVxdWlyZWQgJiYgYWRkUGxheWVyRm9ybS5wQ291bnRyeS4kZGlydHl9Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9InBsYXllckNvdW50cnkiIGNsYXNzPSJjb2wtc20tNCBjb250cm9sLWxhYmVsIj7Qk9GA0LDQttC00LDQvdGB0YLQstC+PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS04Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcmVxdWlyZWQgbmFtZT0icENvdW50cnkiIG5nLW1vZGVsPSJwbGF5ZXJDb3VudHJ5IiBjbGFzcz0iZm9ybS1jb250cm9sIiBpZD0icGxheWVyQ291bnRyeSIgcGxhY2Vob2xkZXI9ItCT0YDQsNC20LTQsNC90YHRgtCy0L4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlcnJvciIgbmctc2hvdz0iYWRkUGxheWVyRm9ybS5wQ291bnRyeS4kZGlydHkgJiYgYWRkUGxheWVyRm9ybS5wQ291bnRyeS4kZXJyb3IucmVxdWlyZWQiPtCY0LPRgNC+0Log0L3QtSDQvNC+0LbQtdGCINCx0YvRgtGMINCx0LXQtyDQs9GA0LDQttC00LDQvdGB0YLQstCwITwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0icGxheWVyR29hbHMiIGNsYXNzPSJjb2wtc20tNCBjb250cm9sLWxhYmVsIj7QodC60L7Qu9GM0LrQviDQs9C+0LvQvtCyINC30LDQsdC40Ls8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0icEdvYWxzIiBuZy1tb2RlbD0icGxheWVyR29hbHMiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIGlkPSJwbGF5ZXJHb2FscyIgcGxhY2Vob2xkZXI9ItCh0LrQvtC70YzQutC+INCz0L7Qu9C+0LIg0LfQsNCx0LjQuyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTggY29sLXNtLW9mZnNldC00Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbmctZGlzYWJsZWQ9ImFkZFBsYXllckZvcm0ucE5hbWUuJGludmFsaWQgfHwgYWRkUGxheWVyRm9ybS5wQ291bnRyeS4kaW52YWxpZCIgbmctY2xpY2s9ImFkZFBsYXllcihwbGF5ZXJOYW1lLCBwbGF5ZXJUZWFtLCBwbGF5ZXJDb3VudHJ5LCBwbGF5ZXJHb2FscykiIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiPtCU0L7QsdCw0LLQuNGC0Yw8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTEyIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0icFNlbGVjdCIgbmctbW9kZWw9InNlbGVjdFBsYXllcnMiIGNsYXNzPSJmb3JtLWNvbnRyb2wiPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTEyIj4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBuZy1jbGljaz0ic29ydEJ5TmFtZSgnbmFtZScpIj7QmNCz0YDQvtC6PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+0JrQvtC80LDQvdC00LA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7QndCw0YbQuNC+0L3QsNC70YzQvdC+0YHRgtGMPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+0KHQutC+0LvRjNC60L4g0LPQvtC70L7QsiDQt9Cw0LHQuNC7PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS08dHIgbmctcmVwZWF0PSJwbGF5ZXIgaW4gcGxheWVycyB8IG9yZGVyQnk6bmFtZVNvcnRpbmcgfCBmaWx0ZXI6IHNlbGVjdFBsYXllcnMgfCBsaW1pdFRvOjIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3BsYXllci5uYW1lfX08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3BsYXllci50ZWFtfX08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3BsYXllci5jb3VudHJ5fX08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3BsYXllci5nb2Fsc319PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+LS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgbmctcmVwZWF0PSJwbGF5ZXIgaW4gcGxheWVycyB8IGdvYWxzRmlsdGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3twbGF5ZXIubmFtZX19PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3twbGF5ZXIudGVhbX19PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3twbGF5ZXIuY291bnRyeX19PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3twbGF5ZXIuZ29hbHN9fTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxzY3JpcHQgc3JjPSJhbmd1bGFyLmpzIj48L3NjcmlwdD4KICAgICAgICA8c2NyaXB0PgogICAgICAgICAgICB2YXIgYXBwID0gYW5ndWxhci5tb2R1bGUoInBsYXllcnNBcHAiLCBbXSk7CgogICAgICAgICAgICB2YXIgbW9kZWwgPSBbXTsKCgogICAgICAgICAgICBhcHAuY29udHJvbGxlcigicGxheWVyQ3RybCIsIGZ1bmN0aW9uKCRzY29wZSl7CiAgICAgICAgICAgICAgICAkc2NvcGUucGxheWVycyA9IG1vZGVsOwogICAgICAgICAgICAgICAgJHNjb3BlLm9yZGVyQnlGdW5jdGlvbiA9IGZ1bmN0aW9uKHBsYXllcil7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KHBsYXllci5nb2Fscyk7CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgJHNjb3BlLmFkZFBsYXllciA9IGZ1bmN0aW9uKHBsYXllck5hbWUsIHBsYXllclRlYW0sIHBsYXllckNvdW50cnksIHBsYXllckdvYWxzKSB7CiAgICAgICAgICAgICAgICAgICAgJHNjb3BlLnBsYXllcnMucHVzaCh7bmFtZTogcGxheWVyTmFtZSwgdGVhbTogcGxheWVyVGVhbSwgY291bnRyeTogcGxheWVyQ291bnRyeSwgZ29hbHM6IHBsYXllckdvYWxzfSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJHNjb3BlLnNvcnRCeU5hbWUgPSBmdW5jdGlvbihwKSB7CiAgICAgICAgICAgICAgICAgICAgJHNjb3BlLm5hbWVTb3J0aW5nID0gcDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgYXBwLmZpbHRlcigiZ29hbHNGaWx0ZXIiLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbihpdGVtKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRlbkdvYWxzID0gW107CiAgICAgICAgICAgICAgICAgICAgZm9yKGk9MDsgaTxpdGVtLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGl0ZW1baV0uZ29hbHMgPiAxMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVuR29hbHMucHVzaChpdGVtW2ldKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGVuR29hbHM7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIDwvc2NyaXB0PgoKICAgIDwvYm9keT4KPC9odG1sPgo=&#8221; admin_label=&#8221;\u041a\u043e\u0434 \u0443\u0440\u043e\u043a\u0430 &#8221; style=&#8221;docco&#8221; linenums=&#8221;on&#8221; usetabwidth=&#8221;on&#8221; tabwidth=&#8221;4&#8243; _builder_version=&#8221;4.4.2&#8243; hover_enabled=&#8221;0&#8243;]PCFET0NUWVBFIGh0bWw+CjxodG1sIG5nLWFwcD0icGxheWVyc0FwcCI+CiAgICA8aGVhZD4KICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgICAgICAgPHRpdGxlPjwvdGl0bGU+CiAgICAgICAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4zLjcvY3NzL2Jvb3RzdHJhcC5taW4uY3NzIiByZWw9InN0eWxlc2hlZXQiPgogICAgICAgIDxzdHlsZT4KICAgICAgICAgICAgLyppbnB1dC5uZy1pbnZhbGlkLXJlcXVpcmVkIHsKICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJlZDsKICAgICAgICAgICAgfSovCiAgICAgICAgPC9zdHlsZT4KICAgIDwvaGVhZD4KICAgIDxib2R5PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiIG5nLWNvbnRyb2xsZXI9InBsYXllckN0cmwiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTEyIj4KICAgICAgICAgICAgICAgICAgICA8Zm9ybSBjbGFzcz0iZm9ybS1ob3Jpem9udGFsIiBuYW1lPSJhZGRQbGF5ZXJGb3JtIiBub3ZhbGlkYXRlPgogICAgICAgICAgICAgICAgICAgICAgICA8bGVnZW5kPtCh0L\/QuNGB0L7QuiDRhNGD0YLQsdC+0LvQuNGB0YLQvtCyPC9sZWdlbmQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCIgbmctY2xhc3M9InsnaGFzLWVycm9yJzogYWRkUGxheWVyRm9ybS5wTmFtZS4kZXJyb3IucmVxdWlyZWQgJiYgYWRkUGxheWVyRm9ybS5wTmFtZS4kZGlydHl9Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9InBsYXllck5hbWUiIGNsYXNzPSJjb2wtc20tNCBjb250cm9sLWxhYmVsIj7QmNC80Y8g0LjQs9GA0L7QutCwPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS04Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHJlcXVpcmVkIG5hbWU9InBOYW1lIiBuZy1tb2RlbD0icGxheWVyTmFtZSIgY2xhc3M9ImZvcm0tY29udHJvbCIgaWQ9InBsYXllck5hbWUiIHBsYWNlaG9sZGVyPSLQmNC80Y8g0LjQs9GA0L7QutCwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVycm9yIiBuZy1zaG93PSJhZGRQbGF5ZXJGb3JtLnBOYW1lLiRkaXJ0eSAmJiBhZGRQbGF5ZXJGb3JtLnBOYW1lLiRlcnJvci5yZXF1aXJlZCI+0JLQstC10LTQuNGC0LUg0LjQvNGPINC40LPRgNC+0LrQsCE8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9InBsYXllclRlYW0iIGNsYXNzPSJjb2wtc20tNCBjb250cm9sLWxhYmVsIj7QkiDQutCw0LrQvtC5INC60L7QvNCw0L3QtNC1INC40LPRgNCw0LXRgjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tOCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJwVGVhbSIgbmctbW9kZWw9InBsYXllclRlYW0iIGNsYXNzPSJmb3JtLWNvbnRyb2wiIGlkPSJwbGF5ZXJUZWFtIiBwbGFjZWhvbGRlcj0i0JIg0LrQsNC60L7QuSDQutC+0LzQsNC90LTQtSDQuNCz0YDQsNC10YIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCIgbmctY2xhc3M9InsnaGFzLWVycm9yJzogYWRkUGxheWVyRm9ybS5wQ291bnRyeS4kZXJyb3IucmVxdWlyZWQgJiYgYWRkUGxheWVyRm9ybS5wQ291bnRyeS4kZGlydHl9Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9InBsYXllckNvdW50cnkiIGNsYXNzPSJjb2wtc20tNCBjb250cm9sLWxhYmVsIj7Qk9GA0LDQttC00LDQvdGB0YLQstC+PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS04Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcmVxdWlyZWQgbmFtZT0icENvdW50cnkiIG5nLW1vZGVsPSJwbGF5ZXJDb3VudHJ5IiBjbGFzcz0iZm9ybS1jb250cm9sIiBpZD0icGxheWVyQ291bnRyeSIgcGxhY2Vob2xkZXI9ItCT0YDQsNC20LTQsNC90YHRgtCy0L4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlcnJvciIgbmctc2hvdz0iYWRkUGxheWVyRm9ybS5wQ291bnRyeS4kZGlydHkgJiYgYWRkUGxheWVyRm9ybS5wQ291bnRyeS4kZXJyb3IucmVxdWlyZWQiPtCY0LPRgNC+0Log0L3QtSDQvNC+0LbQtdGCINCx0YvRgtGMINCx0LXQtyDQs9GA0LDQttC00LDQvdGB0YLQstCwITwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0icGxheWVyR29hbHMiIGNsYXNzPSJjb2wtc20tNCBjb250cm9sLWxhYmVsIj7QodC60L7Qu9GM0LrQviDQs9C+0LvQvtCyINC30LDQsdC40Ls8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0icEdvYWxzIiBuZy1tb2RlbD0icGxheWVyR29hbHMiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIGlkPSJwbGF5ZXJHb2FscyIgcGxhY2Vob2xkZXI9ItCh0LrQvtC70YzQutC+INCz0L7Qu9C+0LIg0LfQsNCx0LjQuyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTggY29sLXNtLW9mZnNldC00Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbmctZGlzYWJsZWQ9ImFkZFBsYXllckZvcm0ucE5hbWUuJGludmFsaWQgfHwgYWRkUGxheWVyRm9ybS5wQ291bnRyeS4kaW52YWxpZCIgbmctY2xpY2s9ImFkZFBsYXllcihwbGF5ZXJOYW1lLCBwbGF5ZXJUZWFtLCBwbGF5ZXJDb3VudHJ5LCBwbGF5ZXJHb2FscykiIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiPtCU0L7QsdCw0LLQuNGC0Yw8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTEyIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0icFNlbGVjdCIgbmctbW9kZWw9InNlbGVjdFBsYXllcnMiIGNsYXNzPSJmb3JtLWNvbnRyb2wiPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTEyIj4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBuZy1jbGljaz0ic29ydEJ5TmFtZSgnbmFtZScpIj7QmNCz0YDQvtC6PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+0JrQvtC80LDQvdC00LA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7QndCw0YbQuNC+0L3QsNC70YzQvdC+0YHRgtGMPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+0KHQutC+0LvRjNC60L4g0LPQvtC70L7QsiDQt9Cw0LHQuNC7PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS08dHIgbmctcmVwZWF0PSJwbGF5ZXIgaW4gcGxheWVycyB8IG9yZGVyQnk6bmFtZVNvcnRpbmcgfCBmaWx0ZXI6IHNlbGVjdFBsYXllcnMgfCBsaW1pdFRvOjIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3BsYXllci5uYW1lfX08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3BsYXllci50ZWFtfX08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3BsYXllci5jb3VudHJ5fX08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3BsYXllci5nb2Fsc319PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+LS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgbmctcmVwZWF0PSJwbGF5ZXIgaW4gcGxheWVycyB8IGdvYWxzRmlsdGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3twbGF5ZXIubmFtZX19PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3twbGF5ZXIudGVhbX19PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3twbGF5ZXIuY291bnRyeX19PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3twbGF5ZXIuZ29hbHN9fTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxzY3JpcHQgc3JjPSJhbmd1bGFyLmpzIj48L3NjcmlwdD4KICAgICAgICA8c2NyaXB0PgogICAgICAgICAgICB2YXIgYXBwID0gYW5ndWxhci5tb2R1bGUoInBsYXllcnNBcHAiLCBbXSk7CgogICAgICAgICAgICB2YXIgbW9kZWwgPSBbXTsKCgogICAgICAgICAgICBhcHAuY29udHJvbGxlcigicGxheWVyQ3RybCIsIGZ1bmN0aW9uKCRzY29wZSl7CiAgICAgICAgICAgICAgICAkc2NvcGUucGxheWVycyA9IG1vZGVsOwogICAgICAgICAgICAgICAgJHNjb3BlLm9yZGVyQnlGdW5jdGlvbiA9IGZ1bmN0aW9uKHBsYXllcil7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KHBsYXllci5nb2Fscyk7CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgJHNjb3BlLmFkZFBsYXllciA9IGZ1bmN0aW9uKHBsYXllck5hbWUsIHBsYXllclRlYW0sIHBsYXllckNvdW50cnksIHBsYXllckdvYWxzKSB7CiAgICAgICAgICAgICAgICAgICAgJHNjb3BlLnBsYXllcnMucHVzaCh7bmFtZTogcGxheWVyTmFtZSwgdGVhbTogcGxheWVyVGVhbSwgY291bnRyeTogcGxheWVyQ291bnRyeSwgZ29hbHM6IHBsYXllckdvYWxzfSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJHNjb3BlLnNvcnRCeU5hbWUgPSBmdW5jdGlvbihwKSB7CiAgICAgICAgICAgICAgICAgICAgJHNjb3BlLm5hbWVTb3J0aW5nID0gcDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgYXBwLmZpbHRlcigiZ29hbHNGaWx0ZXIiLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbihpdGVtKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRlbkdvYWxzID0gW107CiAgICAgICAgICAgICAgICAgICAgZm9yKGk9MDsgaTxpdGVtLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGl0ZW1baV0uZ29hbHMgPiAxMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVuR29hbHMucHVzaChpdGVtW2ldKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGVuR29hbHM7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIDwvc2NyaXB0PgoKICAgIDwvYm9keT4KPC9odG1sPgo=[\/et_pb_dmb_code_snippet][et_pb_comments _builder_version=&#8221;4.4.2&#8243; custom_margin=&#8221;30px||||false|false&#8221; hover_enabled=&#8221;0&#8243;][\/et_pb_comments][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this tutorial we&#8217;ll discuss filters in angular. Angular has got several build-in filters. Also we will create our custom filter with filter method. There are the list of build-in filters below: uppercase formats string to uppercase. lowercase formats string to lowercase. number formats a number to string. limitTo limit input of data based of [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[256,219],"tags":[278,277,230],"class_list":["post-26846","post","type-post","status-publish","format-standard","hentry","category-javascript","category-tutorials","tag-angular-en","tag-angularjs-en","tag-javascript-en"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Angular filters. Create your own filters - Kamil Abzalov&#039;s blog<\/title>\n<meta name=\"description\" content=\"In this lesson we will consider using of angular filters. Besides we will create our own filter.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/filters-in-angular\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Angular filters. Create your own filters\" \/>\n<meta property=\"og:description\" content=\"In this lesson we will consider using of angular filters. Besides we will create our own filter.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/filters-in-angular\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/kamabzalov\" \/>\n<meta property=\"article:published_time\" content=\"2017-09-16T16:16:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-04-10T20:34:09+00:00\" \/>\n<meta name=\"author\" content=\"Kamil&#039; Abzalov\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Angular filters. Create your own filters\" \/>\n<meta name=\"twitter:description\" content=\"In this lesson we will consider using of angular filters. Besides we will create our own filter.\" \/>\n<meta name=\"twitter:creator\" content=\"@kamabzalov\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kamil&#039; Abzalov\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/javascript\\\/filters-in-angular\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/javascript\\\/filters-in-angular\\\/\"},\"author\":{\"name\":\"Kamil' Abzalov\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#\\\/schema\\\/person\\\/9c53360f21b83306ba40c2231573c600\"},\"headline\":\"Angular filters. Create your own filters\",\"datePublished\":\"2017-09-16T16:16:39+00:00\",\"dateModified\":\"2020-04-10T20:34:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/javascript\\\/filters-in-angular\\\/\"},\"wordCount\":2206,\"commentCount\":0,\"keywords\":[\"angular\",\"angularjs\",\"javascript\"],\"articleSection\":[\"JavaScript\",\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/javascript\\\/filters-in-angular\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/javascript\\\/filters-in-angular\\\/\",\"url\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/javascript\\\/filters-in-angular\\\/\",\"name\":\"Angular filters. Create your own filters - Kamil Abzalov's blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#website\"},\"datePublished\":\"2017-09-16T16:16:39+00:00\",\"dateModified\":\"2020-04-10T20:34:09+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#\\\/schema\\\/person\\\/9c53360f21b83306ba40c2231573c600\"},\"description\":\"In this lesson we will consider using of angular filters. Besides we will create our own filter.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/javascript\\\/filters-in-angular\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/javascript\\\/filters-in-angular\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/javascript\\\/filters-in-angular\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\",\"item\":\"https:\\\/\\\/kamil-abzalov.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Angular filters. Create your own filters\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#website\",\"url\":\"https:\\\/\\\/kamil-abzalov.com\\\/\",\"name\":\"\u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/kamil-abzalov.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#\\\/schema\\\/person\\\/9c53360f21b83306ba40c2231573c600\",\"name\":\"Kamil' Abzalov\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g\",\"caption\":\"Kamil' Abzalov\"},\"sameAs\":[\"https:\\\/\\\/kamil-abzalov.com\\\/\",\"https:\\\/\\\/www.facebook.com\\\/kamabzalov\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/kamabzalov\",\"https:\\\/\\\/x.com\\\/kamabzalov\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/kamabzalov\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Angular filters. Create your own filters - Kamil Abzalov's blog","description":"In this lesson we will consider using of angular filters. Besides we will create our own filter.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/filters-in-angular\/","og_locale":"en_US","og_type":"article","og_title":"Angular filters. Create your own filters","og_description":"In this lesson we will consider using of angular filters. Besides we will create our own filter.","og_url":"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/filters-in-angular\/","og_site_name":"\u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430","article_author":"https:\/\/www.facebook.com\/kamabzalov","article_published_time":"2017-09-16T16:16:39+00:00","article_modified_time":"2020-04-10T20:34:09+00:00","author":"Kamil' Abzalov","twitter_card":"summary_large_image","twitter_title":"Angular filters. Create your own filters","twitter_description":"In this lesson we will consider using of angular filters. Besides we will create our own filter.","twitter_creator":"@kamabzalov","twitter_misc":{"Written by":"Kamil' Abzalov","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/filters-in-angular\/#article","isPartOf":{"@id":"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/filters-in-angular\/"},"author":{"name":"Kamil' Abzalov","@id":"https:\/\/kamil-abzalov.com\/#\/schema\/person\/9c53360f21b83306ba40c2231573c600"},"headline":"Angular filters. Create your own filters","datePublished":"2017-09-16T16:16:39+00:00","dateModified":"2020-04-10T20:34:09+00:00","mainEntityOfPage":{"@id":"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/filters-in-angular\/"},"wordCount":2206,"commentCount":0,"keywords":["angular","angularjs","javascript"],"articleSection":["JavaScript","Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kamil-abzalov.com\/videouroki\/javascript\/filters-in-angular\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/filters-in-angular\/","url":"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/filters-in-angular\/","name":"Angular filters. Create your own filters - Kamil Abzalov's blog","isPartOf":{"@id":"https:\/\/kamil-abzalov.com\/#website"},"datePublished":"2017-09-16T16:16:39+00:00","dateModified":"2020-04-10T20:34:09+00:00","author":{"@id":"https:\/\/kamil-abzalov.com\/#\/schema\/person\/9c53360f21b83306ba40c2231573c600"},"description":"In this lesson we will consider using of angular filters. Besides we will create our own filter.","breadcrumb":{"@id":"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/filters-in-angular\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kamil-abzalov.com\/videouroki\/javascript\/filters-in-angular\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/filters-in-angular\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430","item":"https:\/\/kamil-abzalov.com\/en\/"},{"@type":"ListItem","position":2,"name":"Angular filters. Create your own filters"}]},{"@type":"WebSite","@id":"https:\/\/kamil-abzalov.com\/#website","url":"https:\/\/kamil-abzalov.com\/","name":"\u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kamil-abzalov.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/kamil-abzalov.com\/#\/schema\/person\/9c53360f21b83306ba40c2231573c600","name":"Kamil' Abzalov","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g","caption":"Kamil' Abzalov"},"sameAs":["https:\/\/kamil-abzalov.com\/","https:\/\/www.facebook.com\/kamabzalov","https:\/\/www.linkedin.com\/in\/kamabzalov","https:\/\/x.com\/kamabzalov","https:\/\/www.youtube.com\/user\/kamabzalov"]}]}},"_links":{"self":[{"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/posts\/26846","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/comments?post=26846"}],"version-history":[{"count":10,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/posts\/26846\/revisions"}],"predecessor-version":[{"id":31929,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/posts\/26846\/revisions\/31929"}],"wp:attachment":[{"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/media?parent=26846"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/categories?post=26846"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/tags?post=26846"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}