У меня имеется файл movie.json, в котором содержится список фильмов, и я хочу создать MoviesServices, чтобы получать данные в нужном месте.
Мои фильмыУслуги:
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { HttpErrorResponse } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class MoviesService {
movies: string[];
constructor(private httpService: HttpClient) {
this.getMovies();
}
getMovies() {
this.httpService.get('../../assets/movies.json').subscribe(
data => {
this.movies = data as string[];
console.log(this.movies); // My objects array
},
(err: HttpErrorResponse) => {
console.log(err.message);
}
);
console.log(this.movies); // Undefined
}
}
Во-первых, я понятия не имею, почему первый console.log () работает, а второй нет. Скажите, почему?
Вот мой компонент, где мне нужно получить данные:
import { Component, OnInit } from '@angular/core';
import { MoviesService } from '../services/movies/movies.service';
@Component({
selector: 'app-movies',
templateUrl: './movies.component.html',
styleUrls: ['./movies.component.css']
})
export class MoviesComponent implements OnInit {
title = 'films-synopsys';
movies;
constructor(private myService: MoviesService) {}
ngOnInit() {
console.log(this.myService.movies); // Undefined
}
}
Конечно, это не работает. Можете ли вы сказать мне, как я должен делать? Я новичок угловой