tab1.page.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import { Component } from '@angular/core';
  2. interface Photo {
  3. id: number;
  4. url: string;
  5. tags: string[];
  6. }
  7. @Component({
  8. selector: 'app-tab1',
  9. templateUrl: 'tab1.page.html',
  10. styleUrls: ['tab1.page.scss'],
  11. })
  12. export class Tab1Page {
  13. photos: Photo[] = [
  14. { id: 1, url: 'assets/photos/photo1.jpg', tags: ['赛马娘', '东商改革'] },
  15. { id: 2, url: 'assets/photos/photo2.jpg', tags: ['赛马娘', '东海帝皇','目白麦昆'] },
  16. { id: 3, url: 'assets/photos/photo3.jpg', tags: ['赛马娘', '东海帝皇'] },
  17. { id: 4, url: 'assets/photos/photo4.jpg', tags: ['赛马娘', '目白麦昆'] },
  18. { id: 5, url: 'assets/photos/photo5.jpg', tags: ['赛马娘', '草上飞'] },
  19. { id: 6, url: 'assets/photos/photo6.jpg', tags: ['赛马娘', '北部玄驹'] },
  20. // 添加更多照片
  21. ];
  22. displayedPhotos: Photo[] = [];
  23. constructor() {
  24. this.displayedPhotos = [...this.photos]; // 初始显示所有照片
  25. }
  26. onSearch(event: CustomEvent) {
  27. const searchTerm = (event.target as HTMLInputElement).value.toLowerCase().trim();
  28. if (searchTerm === '') {
  29. this.displayedPhotos = [...this.photos]; // 重置显示所有照片
  30. } else {
  31. this.displayedPhotos = this.photos.filter(photo =>
  32. photo.tags.some(tag => tag.toLowerCase().includes(searchTerm))
  33. );
  34. }
  35. }
  36. }