Массивы и маршруты: угловые

У меня есть 9 кнопок, которые может нажимать пользователь. Каждая кнопка представляет отдельный тип библиотеки. После того, как пользователь щелкнет тип библиотеки, появятся еще 9 кнопок, описывающих свойства типа библиотеки. У меня будет 9 массивов, но пока у меня только 2, в основном я хочу загрузить определенный массив на основе нажатий кнопок, которые пользователь уже выполнил. Например, пользователь нажимает кнопку тестового домена, которая перемещает его на следующую страницу, которая отображает свойства тестового домена. Затем пользователь щелкает свойство, и на основе этого я хочу загрузить тестовый домен со всеми изображениями.

Я не думаю, что мои фрагменты отображают то, что я пытаюсь объяснить, поэтому я предоставил редакционный URL-адрес кода для stackblitz ниже.

https://stackblitz.com/github/pennyfea/Project3-HCI

Это мой html-файл, в котором я пытаюсь различать, какой массив отображать, в зависимости от того, что выбирают пользователи.

<div *ngIf = "image">
  <h2>{{ image.catergory | uppercase }}</h2>
<div>

<div class  = "row" >{{activeImage}}
    <button (click) = "prev()" class = "previous round">&#8249;</button>
    <div  [ngStyle] = "{'background-image': 'url('+ testing.url +')'}" class  = "img-container">
    </div>
    <button (click) = "next()" class = "next round">&#8250;</button>
</div>

  
<!-- <div class  = "row" >{{activeImage}}
    <button (click) = "prev()" class = "previous round">&#8249;</button>
    <div  [ngStyle] = "{'background-image': 'url('+ utilities.url +')'}" class  = "img-container">
    </div>
    <button (click) = "next()" class = "next round">&#8250;</button>
</div>
 -->

Это мой файл graph.service, в котором я создаю массивы изображений для каждого домена.

import { Injectable } from '@angular/core';

@Injectable()
export class GraphService {

  constructor() { }

  // getGraph(id: number){
  //   return GRAPHS.slice(0).find(graph => graph.id == id)
  // }

  getTestingGraphs(id: number){
    return TESTINGRAPHS.slice(0).find(graph => graph.id == id)
  }

  getUtilitiesGraphs(id:number){
    return UTILITIESGRAPHS.slice(0).find(graph => graph.id == id)
  }

}

const TESTINGRAPHS = [
  {id: 1, catergory: "Popularity", url: "assets/img/pgraph.jpg" },
  {id: 2, catergory: "releasefrequency", url: "assets/img/rqgraph.jpg" },
  {id: 3, catergory: "lmd", url: "assets/img/lmd.jpg" },
  {id: 5, catergory: "last discuss overflow", url: "assets/img/ldof.png" },
  {id: 6, catergory: "performance", url: "assets/img/performance.jpg" },
  {id: 7, catergory: "security", url: "assets/img/security.jpg" },
  {id: 8, catergory: "responsetime", url: "assets/img/responsetime.png" },
  {id: 9, catergory: "closingtime", url: "assets/img/isueclosing.png" }
];


const UTILITIESGRAPHS = [
  {id: 1, catergory: "last discuss overflow", url: "assets/img/ldof.png" },
  {id: 2, catergory: "performance", url: "assets/img/performance.jpg" },
  {id: 3, catergory: "security", url: "assets/img/security.jpg" }
];

Это мой файл metric-view.component.ts, в котором я получаю различные массивы. У меня нет всех 9. Пока только два.

import { Component, OnInit } from '@angular/core';
import { Router, ActivatedRoute, ParamMap } from '@angular/router';
import { Location } from '@angular/common';
import { ImageService } from '../metric-details/shared/image.service';
import { LibraryService } from '../library.service';
import { Library } from '../library';
import { GraphService } from '../graph.service';
import { map,mergeMap } from 'rxjs/operators';

@Component({
  selector: 'app-metric-view',
  templateUrl: './metric-view.component.html',
  styleUrls: ['./metric-view.component.css']
})
export class MetricViewComponent implements OnInit {
image: any
testing: any;
utilities: any;
library: Library;
visibleImages: any[] = [];


activeId = 0;


  constructor(private imageService: ImageService, private libraryService:LibraryService, private graphService:GraphService, private location: Location, private route: ActivatedRoute, private router: Router) {
    this.visibleImages = this.imageService.getImages();
   }

  ngOnInit() {
    const id$ = this.route.paramMap.pipe(map((params) => params.get('id') || 0), map(n => Number(n)));
    id$.subscribe(id => {
      this.activeId = id;
      this.testing =  this.graphService.getTestingGraphs(id);
      this.utilities = this.graphService.getUtilitiesGraphs(id);
      this.image = this.imageService.getImage(id);
    });

    id$.pipe(mergeMap(id => this.libraryService.getLibrary(id)))
      .subscribe(library => this.library = library);
  }


  next() {
    // const next = this.activeId + 1 >= this.image.length - 1  ? this.graph.length - 1 : this.activeId + 1;
    const next = this.activeId + 1 >= 9  ? 1 : this.activeId + 1;
    this.router.navigate(['/image/' + next]);
  }

  prev() {
    const prev = this.activeId - 1 < 1 ? 9 : this.activeId - 1;
    this.router.navigate(['/image/' + prev]);
  }

}

В чем проблема? Я не вижу вопросов в ваших заявлениях. Кроме того, я не могу получить доступ к вашему URL

Daniel W Strimpel 06.04.2018 01:34

Мой вопрос все еще слишком расплывчатый? @DanielWStrimpel

pennyBoy 06.04.2018 02:13
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
2
45
0

Другие вопросы по теме