gpt4 book ai didi

angular - 服务构造函数上的 DI 错误

转载 作者:太空狗 更新时间:2023-10-29 17:47:07 26 4
gpt4 key购买 nike

我刚刚开始破解 Angular 2,现在我正在尝试开发我的第一个“真实世界”应用程序。它的目的是从 restfull web 服务中检索数据,所以我写了这段代码:

boot.ts:

import {bootstrap} from 'angular2/platform/browser'
import {AppComponent} from './component/app.component'
import {Http, Headers} from 'angular2/http';

bootstrap(AppComponent);

应用程序组件.ts:

import {Component} from 'angular2/core';
import {AuthComponent} from './auth.component';

@Component({
selector: 'my-app',
templateUrl: 'app/template/my-app.html',
styleUrls: ['app/style/my-app.css'],
directives: [AuthComponent]
})

export class AppComponent {

}

auth.service.ts:

import {Injectable} from 'angular2/core';
import {Http, Headers, HTTP_PROVIDERS} from 'angular2/http';
import {toPromise} from 'rxjs/operator/toPromise';
import {Credentials} from '../model/credentials';

@Injectable()
export class AuthService {

headers : Headers;
http: Http;

constructor(headers: Headers, http: Http){
console.log('CHAMOU CONSTRUTOR SERVICE');
this.headers = headers;
this.http = http;
this.headers.append('Content-Type', 'application/json');
}
}

index.html:

<html>

<head>
<title>MegaSíndico</title>

<link href="http://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.5/js/materialize.min.js"></script>

<!-- 1. Load libraries -->
<script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
<script src="node_modules/rxjs/bundles/Rx.js"></script>
<script src="node_modules/angular2/bundles/angular2.dev.js"></script>

<!-- 2. Configure SystemJS -->
<script>
System.config({
packages: {
app: {
format: 'register',
defaultExtension: 'js'
}
}
});
System.import('app/boot')
.then(null, console.error.bind(console));
</script>

</head>

<!-- 3. Display the application -->
<body>
<my-app>Loading...</my-app>
</body>

</html>

我的控制台出现了这个奇怪的语法错误:

Uncaught SyntaxError: Unexpected token <
Evaluating http://localhost:3000/angular2/http
Error loading http://localhost:3000/app/boot.js

这真的很奇怪,因为当我删除服务层的构造函数时它起作用了,我的 html 呈现在浏览器上。

最佳答案

根据提供的信息,您使用的任何模块加载器都在尝试加载 http://localhost:3000/angular2/http,并且您的 Web 服务器可能返回带有 HTML 的 404文档主体,模块加载器尝试将其评估为 JavaScript 但失败了。如果您查看浏览器的网络选项卡,您可以确认是这种情况。

因为你没有说你正在尝试使用哪个模块加载器,所以不可能说出你需要做什么来正确配置它,但基本上:你的模块加载器配置不正确并且没有应用正确的路径/文件扩展名映射到您的导入。它需要(至少)将 .js 添加到导入的模块路径,以便从服务器上的正确 URL 加载。

关于angular - 服务构造函数上的 DI 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34689075/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com