So my code works when I hit enter (it runs the performSearch
function successfully), but when I try to run the function by hitting my submit button I get the error:
cannot read property error of undefined
Here's my code:
<mat-form-field (ngSubmit)='performSearch($event)' color='primary' id='search-input' class='full-width' appearance='outline'>
<mat-label color='red'>Search</mat-label>
<input #searchBar matInput [(ngModel)]='searchValue' name='searchBar' [value]='searchValue' (keyup.enter)='performSearch($event)'>
</mat-form-field>
<button mat-raised-button color="primary" (click)='performSearch(searchBar.value)' id='submit-search' type='submit' for='searchBar'>Submit</button>
All I want is a way to grab the #searchBar
' value and pass it into the performSearch()
function that fires when I click the button. How do I do that?
If you are working with a piece that needs to pass it's own value into a method, this will do the trick:
<input type="number" value="{{myValue}}" (change)="updateMyValue($event.target.value)">
This is because you are sending the event object on form submit, so you'll get the complete Event object.
(ngSubmit)='performSearch($event)'
If you just want one value, use your template reference variable of input as you are using in click event,
(ngSubmit)='performSearch(searchBar.value)'
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With