所以我的代码在我按下Enter键时运行(它成功运行performSearch
函数),但是当我尝试通过按下提交按钮来运行该函数时,我收到错误:
无法读取未定义的属性错误
这是我的代码:
<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>
我想要的只是获取#searchBar
'值并将其传递到单击按钮时触发的performSearch()
函数的方法。我该怎么做?
答案 0 :(得分:2)
您正在使用var searchValue
在搜索栏中进行双向绑定,因此您只需更改,只需点击提交即可传递此var。
只需替换您的点击事件
(click)='performSearch(searchBar.value)' to
(click)='performSearch(searchValue)'
答案 1 :(得分:1)
这是因为您要在表单提交上发送事件对象,因此您将获得完整的Event对象。
(ngSubmit)='performSearch($event)'
如果您只想要一个值,请在点击事件
中使用输入的模板参考变量(ngSubmit)='performSearch(searchBar.value)'
答案 2 :(得分:1)
(click)="performSearch(searchValue)"
它会起作用,因为你在搜索栏输入中建模,它会通过点击功能发送该值!
答案 3 :(得分:1)
如果您正在处理需要将其自身值传递给方法的部分,这将达到目的:
<input type="number" value="{{myValue}}" (change)="updateMyValue($event.target.value)">