2 проекта, серверный и клиент, сервер ASP.NET Core, Клиент- Angular 8. Опять Cannot read property 'id' of undefined. Дела обстоят так, принимаю с сервера объект User, все идет нормально, создаю форму по объекту в хтмл, на деле все работает, все распознано и вставляется в свои места, но в консоли получаю Cannot read property 'id' of undefined. Код сервера:
[HttpGet, Route("getuser")]
public IActionResult Get()
{
User user = db.Users.FirstOrDefault(x => x.UserName == User.Identity.Name);
return Ok(user);
}
Код компонента:
export class EditUserComponent implements OnInit {
constructor(private router: Router, activeRoute: ActivatedRoute, public http: HttpClient,) {}
user: User;
invalidLogin: boolean;
ngOnInit() {
let token = localStorage.getItem("jwt");
this.http.get("http://localhost:5000/api/user/getuser",
{
headers: new HttpHeaders({
"Authorization": "Bearer " + token,
"Content-Type": "application/json"
})
}).subscribe((response:User) => {
this.user = response;
}, err => {
console.log(err)
});
}
Код хтмл:
<form class="form-signin" #loginForm="ngForm" (ngSubmit)="login(loginForm)">
<div class="container-fluid">
<h2 class="form-signin-heading">Login</h2>
<div *ngIf="invalidLogin" class="alert alert-danger">Invalid username or password.</div>
<br />
<input type="number" [(ngModel)]="user.id" id="id" name="id" ngModel class="form-control" placeholder="id" required>
<br />
<label for="username" class="sr-only">Login</label>
<input type="text" [(ngModel)]="user.userName" id="username" name="username" ngModel class="form-control" placeholder="User Name" required autofocus>
<br />
<label for="lastname" class="sr-only">LastName</label>
<input type="text" [(ngModel)]="user.lastName" id="lastname" name="lastname" ngModel class="form-control" placeholder="LastName" required>
<br />
<label for="password" class="sr-only">Password</label>
<input type="password" [(ngModel)]="user.password" id="password" name="password" ngModel class="form-control" placeholder="Password" required>
<br />
<button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
</div>
</form>
Код самой сущьности в Ангуляре:
export class User {
constructor(
public id: number,
public userName: string,
public password: string,
public lastName:string
) { }
}
Повторюсь-на деле все идеально, все работает как часы, если не открывать консоль, то ошибку и не заметить, но не могу понять почему она там...
С сервера приходит: {"id":1,"userName":"laki_winners","password":"123","lastName":"lw1234"}
П.С. Знаю что id пока коряво запихал в форму, но это чисто для проверки, в дальнейшем скрою, да и если я убираю id, то ошибка ругается на userName, уберу userName, она ругается на lastName и так далее, в общем user будто неопределен, хотя по факту все работает и я получаю данные из юзера и она вставляются в форму как надо.
Компонент вызывал сначала пустого юзера, а потом перезаписывал в него данные из сервера, проблему решило - <div class="container-fluid" *ngIf="user">
. Другими словами задал условие, если юзер не пустой, то все ок.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
задача в том, чтоб передать в таблицу имя pdf файла, но при попытке отправить текстовое значение в поле namep поле таблицы не заполняется структура...
Помогите правильно организовать базу данных mysql для почасового или получасового бронирования помещениеПомещения открыты для бронирования...
Что делаю не так? Копирую с mailtrapio конфигурацию для yii