Angular 5 HTML Comp. Отсутствует функция TS Comp. - PullRequest
0 голосов
/ 07 января 2019

Функция, которую я написал в части TypeScript моего компонента Angular, кажется невидимой для HTML, который должен иметь возможность вызывать ее, но могут вызываться другие функции в том же файле.

Функция loadPage (страница + 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);
    }
}

1 Ответ

0 голосов
/ 08 января 2019

Причина, по которой timedLoadResults не вызывается, связана с тем, что он не связан с событием keyup. Для привязки к событию используйте (keyup)="timedLoadResults()" вместо onkeyup.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...