【发布时间】:2018-11-04 20:54:48
【问题描述】:
如标题中所述,我想在角度 4 中执行 search 函数。我在 SpringBoot 后端有 REST 服务,我在 Postman 中调用了它,它工作得很好,但在前端没有角度的。
我的代码在Service.TS
@Injectable()
export class EvenementService {
private evensUrl_del = 'http://localhost:8080/evenement';
private headers = new Headers({ 'Content-Type': 'application/json' });
private options = new RequestOptions({ headers: this.headers });
constructor(private http: Http) { }
// Get all events
getEvenement(): Promise<Evenement[]> {
return this.http.get(this.evensUrl)
.toPromise()
.then(response => response.json() as Evenement[])
.catch(this.handleError);
}
getEvenementByType(typeE: string): Promise<Evenement[]> {
return this.http.get(this.evensUrl_del + '/evenements/' + typeE, this.options)
.toPromise()
.then(response => response.json() as Evenement)
.catch(this.handleError);
} }
我的Component.TS
@Component({
selector: 'app-evenement',
templateUrl: './evenement.component.html',
styleUrls: ['./evenement.component.css']
})
export class EvenementComponent implements OnInit {
events: Evenement = new Evenement();
evenmt: Evenement[];
//e: Evenement[];
typeE: string;
constructor(public router: Router, private modalService: NgbModal, private evenementService: EvenementService, private toastyService: ToastyService) { }
ngOnInit(): void {
this.typeE="";
//this.getEvenements();
}
ver(events: Evenement, modal) {
evenmt => this.evenmt = evenmt;
this.modalService.open(modal, { size: 'lg' });
}
searchEvenement(){
this.evenementService.getEvenementByType(this.typeE).then(evenmt => this.evenmt = evenmt);
}
getEvenements() {
this.evenementService.getEvenement().then(evenmt => this.evenmt = evenmt);
}
}
终于component.html
<div style="width: 300px;">
<div class="form-group">
<label for="typeE"><b>Type</b></label>
<input type="text" class="form-control" id="typeE" name="typeE" [(ngModel)]="typeE" required>
</div>
<div class="btn-group">
<button type="button" class="btn btn-success" (click)="searchEvenement()">Rechercher</button>
</div>
</div>
<ul>
<li *ngFor="let e of evenmt">
<h4>{{e.typeE}} - {{e.prixE}} {{e.dateE}}</h4>
</li>
</ul>
使用上面的代码,当我在浏览器中点击搜索按钮时,它会返回以下错误:
ERROR 错误:未捕获(承诺中):响应状态:302 OK for URL:http://localhost:8080/evenement/evenements/degustation 尽管在 Eclipse 终端中,我查找的行已显示。所以我认为问题实际上出在 Angular 中,但我不知道具体在哪里。
有人可以帮我解决这个问题吗?谢谢
【问题讨论】:
-
首先,我推荐使用Observable!您可以尝试使用 HttpClient,如下所示:return this._http.get
( http://localhost:8080/evenement/evenements/${typeE});尝试告诉我是否有效! -
感谢@Chiien,但它仍然无法正常工作。同样的错误。
-
真的吗?抱歉 =(!您尝试使用 Chrome 开发工具?如果 typeE 数据正在传递?正在发送数据?
-
很抱歉,我遇到了互联网问题...对不起,Chrome 开发工具是什么意思?
-
放松!好吧,我想知道的是,如果请求正常,您可以使用开发工具,F12 网络查看是否正确发送所有数据!
标签: angular frontend web-frontend