Angular2 click-Ereignis nicht auslösen.
Ich versuche zu implementieren benutzerdefinierte Paginierung Komponente. Dies ist Vorlage.
<div *ngIf="totalItems != 0">
<ul class="pagination">
<li *ngFor="let page of pages" [ngClass]="{'active': currentPage == page.title}">
<a (click)="changePage(page)">{{page.title}}</a>
</li>
</ul>
<select>
<option *ngFor="let size of pageSizes">{{size}}</option>
</select>
</div>
Komponente code:
@Component({
selector: 'pager',
templateUrl: 'templates/pager.component.html',
styleUrls: ['styles/pager.component.css']
})
export class PagerComponent {
@Input() totalItems: number = 0;
@Input() lastText: string = "»";
@Input() firstText: string = "«";
@Input() nextText: string = "›";
@Input() prevText: string = "‹";
public currentPage: number = 1;
pageSizes: Array<number> = [10, 15, 30];
public currentSize: number = this.pageSizes[0];
@Output() pageChanged = new EventEmitter();
get pages(): Array<IPage> {
var list = new Array<IPage>();
let pageCount = Math.ceil(this.totalItems / this.currentSize);
let start = Math.max(this.currentPage - 1, 1);
let end = Math.min(this.currentPage + 2, pageCount);
list.push({ title: this.firstText, number: 1 });
list.push({ title: this.prevText, number: this.currentPage - 1});
for (let i = start; i <= end; i++) {
list.push({ title: String(i), number: i });
}
list.push({ title: this.nextText, number: this.currentPage + 1});
list.push({ title: this.lastText, number: end});
return list;
}
public changePage(page: IPage) {
this.currentPage = page.number;
this.pageChanged.emit(null);
};
public resetCurrentPage(): void {
this.currentPage = 1;
}
}
War ich mit einfachen array von zahlen. Dann wollte ich hinzufügen, dass die Letzte/Erste-Tasten. Ich schrieb Schnittstelle, die enthält zwei Eigenschaften, Titel und Seitenzahl. Jetzt click-Ereignis funktioniert nicht. Was ist falsch an meinem code?
bekommst du irgendwelche Fehler?
Was bedeutet "funktioniert nicht" konkret?
es gibt keine Fehler. @Günter Zöchbauer es ins nichts feuern. Ich habe versucht das erstellen von benutzerdefinierten
Was bedeutet "funktioniert nicht" konkret?
es gibt keine Fehler. @Günter Zöchbauer es ins nichts feuern. Ich habe versucht das erstellen von benutzerdefinierten
<div>
und binden Sie die gleiche Funktion auf click
Es funktioniert gut mit div
InformationsquelleAutor Sergеу Isupov | 2016-09-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, das problem ist die Funktion changePage() hat ein argument vom Typ IPage und übergeben Sie eine Reihe
ändern
InformationsquelleAutor manu
Habe ich es behoben! Es ist ähnlich wie diese Frage. Es erzeugt neues array jedes mal. So kantig kann nicht gebunden ein Ereignis array-Element.
@Günter Zöchbauer, es sollte Ihnen vertraut.
Ich kann mich nicht erinnern, die details der Umsetzung, gerade zu speichern versuchen, ein array in deiner Klasse-Feld und schicken Sie es in eine Immobilie. Bitte schauen Sie in den link in meiner Antwort.
InformationsquelleAutor Sergеу Isupov