所以,我正在跟随Angular 2官网上的TypeScript指南,并且在http API集成方面遇到了困难。我正在尝试创建一个简单的应用程序,可以通过SoundCloud API搜索歌曲,但我很难实现并理解如何开始,并且在线资源使用了许多不同的方法(我认为是由于过去Angular 2语法的快速更改导致的)。
所以目前我的项目看起来像这样:
app
components
home
home.component.ts
...
search
search.component.ts
...
app.ts
...
services
soundcloud.ts
bootstrap.ts
index.html
这个例子中没有花哨的东西,主要文件为
app.ts
import {Component, View} from 'angular2/core';
import {RouteConfig, ROUTER_DIRECTIVES} from 'angular2/router';
import {HomeComponent} from './home/home.component';
import {SearchComponent} from './search/search.component';
@Component({
selector: 'app',
templateUrl: 'app/components/app.html',
directives: [ROUTER_DIRECTIVES]
})
@RouteConfig([
{path: '/home', name: 'Home', component: HomeComponent, useAsDefault: true},
{path: '/search', name: 'Search', component: SearchComponent}
])
export class App { }
bootstrap.ts
import {App} from './components/app';
import {bootstrap} from 'angular2/platform/browser';
import {ROUTER_PROVIDERS} from 'angular2/router';
bootstrap(App, [
ROUTER_PROVIDERS
]);
我一直在尝试弄清楚soundcloud.ts,但是我无法做到,并且下面的方法存在错误。 即@Inject
未找到(我认为我在这里使用过时的语法)。 基本上我想在我的应用程序中使用soundcloud服务进行api调用,从搜索组件中进行。
import {Injectable} from 'angular2/core'
import {Http} from 'angular2/http'
@Injectable()
export class SoundcloudService {
http : Http
constructor(@Inject(Http) http) {
this.http = http;
}
}
由于我还没有掌握基础知识,因此此处未包括SoundCloud API。
@Inject(Http) http
更改为http: Http
。 - Langley@Injectable
但没有导入@Inject
,并且你同时使用了两者。 - Langley