【发布时间】:2019-07-20 15:06:04
【问题描述】:
当我单击搜索链接时,我正在显示搜索输入,我正在使用 keyup 事件从输入中获取值。但是得到屏幕截图中显示的错误。 我正在使用角度 6。
组件
import { Component, OnInit, ViewChild, ElementRef, AfterViewInit } from '@angular/core';
import { fromEvent } from 'rxjs';
import { map } from 'rxjs/operators';
@Component({
selector: 'app-temp',
templateUrl: './temp.component.html',
styleUrls: ['./temp.component.css']
})
export class TempComponent implements OnInit, AfterViewInit {
displaySearch = false;
@ViewChild('searchValue') searchValue: ElementRef;
constructor() { }
ngOnInit() {
}
searchFunc() {
if (this.displaySearch === false) {
this.displaySearch = true;
} else if (this.displaySearch === true){
this.displaySearch = false;
}
}
ngAfterViewInit() {
fromEvent(this.searchValue.nativeElement, 'keyup').pipe(
map((event: any) => {
return (event.target).value;
})
).subscribe(res => {
console.log(res);
});
}
}
HTML
<div>
<a href="javascript:void(0)" (click)="searchFunc()">Search</a>
</div>
<ng-container *ngIf="displaySearch">
<input type="text" name="searchValue" #searchValue>
</ng-container>
【问题讨论】:
-
ts 文件中的 searchFunc() 在哪里?
-
它在组件中,此刻我想读取组件中的值。
-
我正在尝试使用 fromEvent() 运算符读取值。
-
但是兄弟你在 a 标签中写了 searchFunc() 但是我在你的 ts 文件中看不到 searchFunc() 那么你怎么能改变 displaySearch 的值。
-
兄弟,你能在 stackblitz 中制作这个项目吗?
标签: angular