【发布时间】:2023-03-25 06:00:01
【问题描述】:
所以,我正在通过 typescript 在他们的网站上关注 angular 2 指南,并被困在 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 未包含在此处,因为我无法先了解基础知识。
【问题讨论】:
-
在启动文件中添加 HTTP_PROVIDERS 并确保添加了 http.dev.js 库并将
@Inject(Http) http更改为http:Http -
你得到的错误是因为你正在导入
@Injectable而不是@Inject并且你正在使用两者 -
@Langley 你能扩展你的评论吗? http.dev.js 需要添加为 index.html 中的脚本吗?我不确定我需要如何更改第二部分。
-
将它们添加为答案,这样更具可读性。
-
这里有一篇关于Http的文章如果你有兴趣syntaxsuccess.com/viewarticle/angular-2.0-and-http
标签: javascript angular http