Нет результатов от нового компонента (Angular ASP.NET Ядро)

#angular #typescript #asp.net-core #asp.net-web-api

#angular #typescript #asp.net-core #asp.net-web-api

Вопрос:

помогите мне, пожалуйста. Я создаю приложение на основе курса, но курс основан на asp.net сердечник 2 и угловой 5. Но я делаю все в текущих версиях. Существует проблема, которую я не могу решить.

У меня есть контроллер, который возвращает список тестов из последнего метода в формате JSON.

QuizController.cs

 //GET api/quiz/latest
[HttpGet("Latest/{num?}")]
public IActionResult Latest(int num = 10)
{
  [other operations...]
  return new JsonResult(sampleQuizzes, new JsonSerializerOptions() { WriteIndented = true });
}
  

До тех пор все работает, потому что при вызове GET в postman отображается список.

Затем я хотел добавить клиентскую часть в Angular и отобразить список на ДОМАШНЕЙ странице.

ClientApp/src/app/quiz/quiz-list.component.ts

 import { Component, Inject } from "@angular/core";   
import { HttpClient } from "@angular/common/http";   

@Component({
  selector: "quiz-list",                     
  templateUrl: './quiz-list.component.html',  
  styleUrls: ['./quiz-list.component.css']   
})

export class QuizListComponent {           
  title: string;
  selectedQuiz: Quiz;
  quizzes: Quiz[];

  constructor(http: HttpClient,
    @Inject('BASE_URL') baseUrl: string) {
    this.title = "Lists of latest quizzes";
    var url = baseUrl   "api/quiz/Latest";
    http.get<Quiz[]>(url).subscribe(result => {  
      this.quizzes = resu<                    
    }, error => console.error(error));
  }

  onSelect(quiz: Quiz) {                         
    this.selectedQuiz = quiz;
    console.log("You choose quiz id "   this.selectedQuiz.Id);
  }
}
  

ClientApp/src/app/quiz/quiz-list.component.html

 <h2>{{title}}</h2>      
<ul class="quizzes">
  <li *ngFor="let quiz of quizzes"
      [class.selected]="quiz === selectedQuiz" 
      (click)="onSelect(quiz)">          
    <span>{{quiz.Title}}</span>   
  </li>
</ul>
  

ClientApp /src/app/app.module.ts

 [...]
import { QuizListComponent } from './quiz/quiz-list.component';
@NgModule({
  declarations: [
    AppComponent,
    NavMenuComponent,
    HomeComponent,
    QuizListComponent   
  ],
  imports: [

[...]
  

После запуска приложения на моем веб-сайте отображается только название компонента из шаблона html: «Списки последних тестов». Ничего больше. Кто-нибудь знает, где ошибка?

Комментарии:

1. Можете ли вы проверить, есть ли какие-либо ошибки в консоли при открытии страницы? Также проверьте вкладку network и посмотрите, действительно ли запрос произошел. Я думаю, что обычно рекомендуется использовать angulars ngOnInit hook для выполнения функций вместо конструктора.

2. Спасибо за помощь. Ваша идея с консолью была очень хорошей. Оказалось, что ошибка была в теге html. Тег LI в quiz-list.component.html у меня было 3 строки, и я поместил комментарий в конце одной строки