でサービスからデータを返すためにAngular1x background.Iから来るが、これは私のNG4サービスがどのようangular4
から上記のサービスを消費するimport { Injectable } from '@angular/core';
import {Http} from '@angular/http';
@Injectable()
export class DataService {
private _http : Http;
constructor(http:Http) {
this._http = http;
}
public GetPosts() : any{
this._http.get("https://jsonplaceholder.typicode.com/posts").subscribe(data => {
const posts = data.json();
console.log(posts); // logs the desired json
return posts;
})}}
どのように見えるかですAngular4
に私の既存のアプリケーションを移行しています成分。 Angular1Xで
import { Component, OnInit } from '@angular/core';
import {Customer} from './customer.model';
import {DataService } from '../../providers/data.service';
@Component({
selector: 'app-customer',
templateUrl: './customer.component.html',
styleUrls: ['./customer.component.css']
})
export class CustomerComponent implements OnInit {
private _dService: DataService;
constructor(dService:DataService) {
this._dService = dService;}
ngOnInit() {}
public GetAll(){
let posts =this._dService.GetPosts();
debugger;
console.log(posts); // undefined
/* here the posts is getting UNDEFINED (error) */
}}
、私はngServiceからの約束を返すために使用されるが、どのように同じことがangular4で行う??購読する
あなたがいませんプライベート_dServiceをデカールする必要があります:DataService;あなたのコンポーネントの最初の行には、コンストラクタの中だけで十分です。試してみてください –
@AnouarMokhtari、yeap。ありがとう:) –
あなたは角度CLIを使用していますか? –