gpt4 book ai didi

api - Promise 拒绝 : No provider for UserDetails!(UserDetails 是 Model 类)

转载 作者:可可西里 更新时间:2023-11-01 16:36:22 24 4
gpt4 key购买 nike

我正在尝试获取 session 数据,在 Service-GlobalServiceService 的 GetSessionData() 方法和我的 Component-HeaderComponent 中使用 http get,我正在订阅来自 GetSessionData() 的响应,然后分配给 UserDetails 类型的对象,这是一个模型类(class) 。服务-

import {Observable} from 'rxjs/Rx';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
import { UserDetails } from "app/model/UserDetails";
@Injectable()
export class GlobalServiceService {
constructor(private lohttp: Http, private loAuthService : AuthService) { }
GetSessionData(): Observable<UserDetails[]>
{
return this.lohttp.get('http://localhost:49609/api/Authentication/checkUserSession')
.map((res:Response) => res.json()
.catch((error:any) => Observable.throw(error.json().error || 'Server
error'))
);
}
}

组件-

import { GlobalServiceService } from './../services/global-service.service';
export class HeaderComponent implements OnInit {
lsUserName: string;
lsUserDetails:UserDetails[];
constructor(private loAuthService: AuthService,private loGlobalService:
GlobalServiceService,private userDetails:UserDetails) { }
LoadSessionData()
{
this.loGlobalService.GetSessionData()
.subscribe(
data => this.lsUserDetails = data,
err => { console.log(err);}
);
}
ngOnInit() {
this.LoadSessionData();
}
}

我是 Angular 2 的新手。我不明白为什么即使我已经导入它也会显示如下错误:

1.ERROR Error: No provider for UserDetails!
at injectionError (core.es5.js:1232) [angular]
...
View_AppComponent_0 @ AppComponent.html:2
proxyClass @ compiler.es5.js:13560
...
2. zone.js:569 Unhandled Promise rejection: No provider for UserDetails! ;

3. Zone: <root> ; Task: Promise.then ; Value: Error: No provider for
UserDetails!
at injectionError (core.es5.js:1232) [angular]
4.zone.js:571 Error: Uncaught (in promise): Error: No provider for
UserDetails!

--->当 UserDetails 添加到 app.module.ts 中的 imports 时出现以下错误

Uncaught Error: Unexpected value 'UserDetails' imported by the module 'AppModule'. Please add a @NgModule annotation. at syntaxError (http://localhost:4200/vendor.bundle.js:44937:34) []

最佳答案

由于 UserDetails 是一个模型,您不能将它注入(inject)到构造函数中。

 constructor(private loAuthService: AuthService,private loGlobalService: 
GlobalServiceService,private userDetails:UserDetails)

HeaderComponent 中删除这个 -> private userDetails:UserDetails

关于api - Promise 拒绝 : No provider for UserDetails!(UserDetails 是 Model 类),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43385274/

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