Angular 5 HTML 比较。缺少 TS Comp. 的功能?
Angular 5 HTML Comp. Missing TS Comp.'s Function?
我在 Angular 组件的 TypeScript 部分编写的一个函数似乎对 HTML 不可见,它应该可以调用它,但同一文件中的其他函数可以被调用。
loadPage(page + 1)函数调用成功,timedLoadResults()函数调用失败。我还尝试了 ng-keyup 指令,但没有产生函数调用结果(从浏览器的网络流量验证,在执行时对服务器进行 API 调用)。
浏览器错误是:'timedLoadResults'未定义
HTML:
<input type="text" id="searchTextId" [(ngModel)]="searchText" name="searchText" placeholder="Search" onkeyup="timedLoadResults()" >
<div id="workflowsTable" class="table-responsive" *ngIf="onlineAcceptanceWorkflows">
<table class="table table-striped">
//table headers...
<tbody infinite-scroll (scrolled)="loadPage(page + 1)" [infiniteScrollDisabled]="page >= links['last']" [infiniteScrollDistance]="0">
<tr *ngFor="let onlineAcceptanceWorkflow of (onlineAcceptanceWorkflows | customSearch: searchText) ;trackBy: trackId">
//...
TS:
loadPage(page) {
this.page = (this.searchText != '')
? this.page
: page;
this.loadAll();
}
timedLoadResults() {
if(this.searchText == ''){
return;
} else {
if(this.timeOut != null) clearTimeout(this.timeOut);
this.timeOut = setTimeout(() => this.loadPage(0), 150);
}
}
未调用 timedLoadResults
的原因是它未绑定到 keyup
事件。要绑定到事件,请使用 (keyup)="timedLoadResults()"
而不是 onkeyup
。
我在 Angular 组件的 TypeScript 部分编写的一个函数似乎对 HTML 不可见,它应该可以调用它,但同一文件中的其他函数可以被调用。
loadPage(page + 1)函数调用成功,timedLoadResults()函数调用失败。我还尝试了 ng-keyup 指令,但没有产生函数调用结果(从浏览器的网络流量验证,在执行时对服务器进行 API 调用)。
浏览器错误是:'timedLoadResults'未定义
HTML:
<input type="text" id="searchTextId" [(ngModel)]="searchText" name="searchText" placeholder="Search" onkeyup="timedLoadResults()" >
<div id="workflowsTable" class="table-responsive" *ngIf="onlineAcceptanceWorkflows">
<table class="table table-striped">
//table headers...
<tbody infinite-scroll (scrolled)="loadPage(page + 1)" [infiniteScrollDisabled]="page >= links['last']" [infiniteScrollDistance]="0">
<tr *ngFor="let onlineAcceptanceWorkflow of (onlineAcceptanceWorkflows | customSearch: searchText) ;trackBy: trackId">
//...
TS:
loadPage(page) {
this.page = (this.searchText != '')
? this.page
: page;
this.loadAll();
}
timedLoadResults() {
if(this.searchText == ''){
return;
} else {
if(this.timeOut != null) clearTimeout(this.timeOut);
this.timeOut = setTimeout(() => this.loadPage(0), 150);
}
}
未调用 timedLoadResults
的原因是它未绑定到 keyup
事件。要绑定到事件,请使用 (keyup)="timedLoadResults()"
而不是 onkeyup
。