如何解决Angular2无法获取任何响应数据
我正在尝试从我的API中读取响应。我可以使用PostMan读取它,但是我的变量“ this.data”始终为null。我尝试了许多不同的迭代,但似乎无法使它正常工作。任何帮助,将不胜感激。该方法称为“ loginSubmitHandler”。
完整代码在这里
import { Component,OnInit } from '@angular/core';
import { FormBuilder,FormGroup,Validators } from '@angular/forms';
import { HttpClient } from '@angular/common/http';
import { Router } from '@angular/router'
@Component({
selector: 'app-login-form',templateUrl: './login-form.component.html',styleUrls: ['./login-form.component.css']
})
export class LoginFormComponent implements OnInit {
myFormL: FormGroup;
// Form state
loading = false;
failure = false;
// Form Data
readonly ROOT_URL = 'http://localhost:5000/api';
data:any = [];
selectedFile: File = null;
// REGEX
namePattern = "^[a-zA-Z]{3,15}$";
unamePattern = "^[a-z0-9_-]{8,25}$";
pwdPattern = "^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).{6,12}$";
mobnumPattern = "^((\\+91-?)|0)?[0-9]{10}$";
emailPattern = "^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$";
constructor(private http: HttpClient,private fb: FormBuilder,private fbL: FormBuilder,private _router: Router) {
this.data = null;
}
ngOnInit() {
this.myFormL = this.fbL.group({
email: [null,[Validators.required,Validators.pattern(this.emailPattern)]],password: [null,Validators.pattern(this.pwdPattern)]],});
}
async loginSubmitHandler() {
this.loading = true;
try {
let url = this.ROOT_URL + "/CheckLogin/" + this.myFormL.get('email').value + "/" + this.myFormL.get('password').value;
await this.getData(url);
console.log(this.data);
this.success = true;
this._router.navigate(['/home']);
} catch (err) {
console.error(err);
this.failure = true;
}
this.loading = false;
}
getData(url) {
this.data = null;
this.http.get<any>(url).subscribe(data=>{
this.data = data.email;
});
}
}
解决方法
如果像波纹管一样订阅它,您将获得数据,<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:id="@+id/Container"
tools:context=".teacher.TeacherProfileActivity">
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<include
android:id="@+id/app_bar"
layout="@layout/item_app_bar_wt_out_title" />
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/imageView"
android:layout_width="120dip"
android:layout_height="120dip"
android:layout_centerHorizontal="true"
android:layout_gravity="center"
android:layout_marginTop="20dp"
android:adjustViewBounds="true"
android:background="@drawable/background1"
android:elevation="1dp"
android:scaleType="centerCrop"
app:riv_corner_radius="60dip"
app:riv_mutate_background="true" />
</RelativeLayout>
<TextView
android:id="@+id/text_name_age"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_20sdp"
android:gravity="center"
android:text="Christina Weaver,25"
android:textColor="#000000"
android:textSize="20sp" />
<TextView
android:id="@+id/text_5jars"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:gravity="center"
android:text="5 års erfarenhat"
android:textColor="#000000" />
<TextView
android:id="@+id/text_number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="center"
android:text="151-251-363"
android:textColor="#000000"
android:textSize="20sp" />
<RatingBar
android:id="@+id/rating_teacher"
android:layout_width="wrap_content"
android:layout_height="@dimen/_15sdp"
android:layout_gravity="center"
android:layout_margin="@dimen/_10sdp"
android:isIndicator="true"
android:progressDrawable="@drawable/custom_rating_small"
android:rating="2" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/_20sdp"
android:gravity="center"
android:orientation="horizontal"
android:weightSum="4">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical"
android:onClick="BtnStartChat">
<ImageButton
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_gravity="center"
android:background="@drawable/button_app_bar_gradient_corner"
android:src="@drawable/ic_baseline_message_24" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Meddelande" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<ImageButton
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_gravity="center"
android:background="@drawable/button_app_bar_gradient_corner"
android:src="@drawable/ic_assignment_black_24dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Förfrågan" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<ImageButton
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_gravity="center"
android:background="@drawable/button_app_bar_gradient_corner"
android:src="@drawable/ic_baseline_star_white" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Betyg" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<ImageButton
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_gravity="center"
android:background="@drawable/button_app_bar_gradient_corner"
android:src="@drawable/ic_more_horiz_white_24dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="övrigt" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabIndicatorColor="@color/colorPrimaryDark"
app:tabIndicatorFullWidth="false"
app:tabMode="fixed" />
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</LinearLayout>
</LinearLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</androidx.core.widget.NestedScrollView>
</RelativeLayout>
是promise的关键字,但是按可观察的模式,没有这样的词。
您还可以通过说observable.toPromise()然后使用await将observable转换为promise。
await
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。