이 "보기 세부 기능"작업을 만드는 데 도움이 필요합니다. 첫째, 나는 그것이 작동하는 방법을 모방하려는 사용자 구성 요소가있었습니다. 특정 일을하려고 할 때 서비스에 액세스해야하는 것처럼. 하지만 사용자 구성 요소는 API에서 오는 것이 아닙니다. 자, 내 뉴스 구성 요소에 모방하고 싶습니다. 세부 정보는 API에서옵니다. 뉴스 구성 요소의 세부 정보에 액세스하려면 어떻게해야합니까? 아래 코드를 사용자 구성 요소와 뉴스 구성 요소 모두에 배치했습니다. 도움을 청합니다.표시 세부 사항 각도 4로보기 단추를 클릭하면
user.service.ts
import { User } from './user.model';
import { Subject } from 'rxjs/Subject';
export class UserService {
usersChanged = new Subject<User[]>();
private users: User[]= [
new User('Harry', 'James', 99999889),
new User('Thomas', 'Baker', 99638798)
];
getUsers() {
return this.users.slice();
}
getUser(index: number) {
return this.users[index];
}
사용자 list.component
import { Component, OnInit } from '@angular/core';
import { User } from '../user.model';
import { UserService } from '../user.service';
import { Router, ActivatedRoute } from '@angular/router';
@Component({
selector: 'app-user-list',
templateUrl: './user-list.component.html',
styleUrls: ['./user-list.component.css']
})
export class UserListComponent implements OnInit {
users: User[];
index: number;
constructor(private userService: UserService, private router: Router, private route: ActivatedRoute) { }
ngOnInit() {
this.users = this.userService.getUsers();
this.userService.usersChanged
.subscribe(
(users: User[]) => {
this.users = users;
}
);
}
onViewUserDetail(index: number){
this.router.navigate(['users', index]);
}
,news.service.ts
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders} from '@angular/common/http';
import 'rxjs/add/operator/map';
@Injectable()
export class NewsService {
constructor(private httpClient: HttpClient) {
}
getNews() {
const authToken = localStorage.getItem('auth_token');
const headers = new HttpHeaders()
.set('Content-Type', 'application/json')
.set('Authorization', `Bearer ${authToken}`);
return this.httpClient
.get('sample/news', { headers: headers })
.map(
(response => response));
}
getNewsDetail(index: number) {
//
}
뉴스 list.component.ts
import { Component, OnInit } from '@angular/core';
import { NewsService } from '../news.service';
import { Router, ActivatedRoute } from '@angular/router';
@Component({
selector: 'app-news-list',
templateUrl: './news-list.component.html',
styleUrls: ['./news-list.component.css']
})
export class NewsListComponent implements OnInit {
newslists: any;
constructor(private newsService: NewsService, private router: Router, private route: ActivatedRoute) { }
ngOnInit() {
this.newsService.getNews()
.subscribe(
(data:any) => {
console.log(data);
this.newslists = data.data.data;
console.log(this.newslists);
},
error => {
alert("ERROR");
});
}
onViewNewsDetail(id: number){
console.log(id);
this.router.navigate(['news', id]);
}
}
@ JayDeeEss. 나는 이걸했다? 어때? – Joseph