adev/src/content/tutorials/first-app/steps/13-search/README.md
This tutorial lesson demonstrates how to add a search functionality to your Angular app.
The app will enable users to search through the data provided by your app and display only the results that match the entered term.
<docs-video src="https://www.youtube.com/embed/5K10oYJ5Y-E?si=TiuNKx_teR9baO7k&start=457"/>IMPORTANT: We recommend using your local environment for this step of the tutorial.
In src/app/home/home.ts, add new property to the class called filteredLocationList.
The filteredLocationList hold the values that match the search criteria entered by the user.
The filteredLocationList should contain the total set of housing locations values by default when the page loads. Update the constructor for the Home to set the value.
Update the Home template to include a template variable in the input element called #filter.
Next, update the component template to attach an event handler to the "Search" button.
<docs-code language="angular-ts" header="Bind the button click event to a method in home.ts" path="adev/src/content/tutorials/first-app/steps/14-http/src/app/home/home.ts" visibleLines="[13]"/>By binding to the click event on the button element, you are able to call the filterResults function. The argument to the function is the value property of the filter template variable. Specifically, the .value property from the input HTML element.
The last template update is to the @for directive. Update the @for to iterate over values from the filteredLocationList array.
Update the Home class to include the implementation of the filterResults function.
This function uses the String filter function to compare the value of the text parameter against the housingLocation.city property. You can update this function to match against any property or multiple properties for a fun exercise.
Save your code.
Refresh the browser and confirm that you can search the housing location data by city when you click the "Search" button after entering text.
</docs-step>SUMMARY: In this lesson, you updated your app to use template variables to interact with template values, and add search functionality using event binding and array functions.
For more information about the topics covered in this lesson, visit:
<docs-pill-row> <docs-pill href="guide/templates" title="Template Variables"/> <docs-pill href="guide/templates/event-listeners" title="Event Handling"/> </docs-pill-row>