angular - 从 Angular 2 中的 REST url 获取《英雄之旅》中的英雄

标签 angular typescript angular2-http angular-tour-of-heroes

Angular 2 Tour of heroes tutorial之后,我发现自己想知道如果我使用 REST api,我将如何“获得英雄”。

鉴于我有一个在 http://localhost:7000/heroes 上运行的 API,它会返回 JSON 的“mock-heroes”列表,那么我至少需要做什么才能使这个“固体”?

据我所知,我应该将其放在hero.service.ts中;特别是在:

@Injectable()
export class HeroService {
    getHeroes() {
        return Promise.resolve(HEROES);
    }
}

但我完全不知道如何使用 http GET 来做到这一点,更不用说做得很好/有风格了。

最佳答案

你需要这样做,

@Injectable()
export class OacService {
    constructor(private http: Http) { }
    ot: Observable<string>;

    search(term: string) {

        let serviceUrl = 'http://localhost:8080/getAutoCompleteData?search=' + term;
        this.ot = this.http
            .get(serviceUrl)
            .map(response => response.json());

        return this.ot;
    }
}

在这种情况下,我返回一个 Observable 的对象,该对象是从我的组件的类中处理的,

this.items = this._oacService.search(term);

在我的 html 模板中,

  <li *ngFor="#item of items | async" (click)="setData(item.name)">
      {{item.name}}<br/>
    </li>

您可以从 git 引用此代码,https://github.com/bhaskeryadav/AngularJS2.git

关于angular - 从 Angular 2 中的 REST url 获取《英雄之旅》中的英雄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35253358/

相关文章:

angular - 在 Angular NGXS 中对匹配的 URL 运行函数

typescript - 如何修复 '0x800a1391 - JavaScript runtime error: ' require'is undefined'?

javascript - 对未定义结果执行的方法(来自 promise 解析的方法)

Angular 2 "No provider for String!"

javascript - 如何在 Highcharts 饼图上设置系列标签的样式?

angular - 在 Visual Studio Code IDE 中找不到模块 '@angular/core'

angular - 重新发送请求 Angular 2

angular - 为 Angular 2 http 请求设置基本 url

javascript - Firebase 不返回值(Angular 2)

javascript - RXJS 6 处理 http Observables 的方式是什么?