Я работаю в качестве front-end developmentr, пытаясь сделать свой прогиб через Angular 2. Этот проект включает простой экран входа в систему, который я не могу заставить работать. Я пробовал различные решения проблемы, но это просто не работает. Я продолжаю получать ошибки, от которых я, похоже, избавляется. На этот раз это «Ошибка при оценке« submit ». «Не удается прочитать свойство„пост“из неопределенными. Я работал над этой проблемой в течение нескольких дней, и я не подвожу никуда. Любая помощь будет принята с благодарностью ...Войти в угловой 2
У меня есть LoginService, а LoginComponent и login.html
login.html:
<div id="login-container" class="center-block">
<form role="form" (submit)="login($event, username.value, password.value)">
<div class="form-group text-left">
<label for="username">Username</label>
<input type="text"
#username class="form-control"
id="username"
placeholder="Gebruikersnaam">
</div>
<div class="form-group text-left">
<label for="password">Password</label>
<input type="password"
#password class="form-control"
id="password" placeholder="Paswoord">
</div>
<div class="form-group text-left">
<input type="checkbox" id="login-remember">
<button type="submit" id="btn-login"
class="btn btn-default">Submit</button>
</div>
</form>
</div>
loginComponent:
import { Component, View, Inject } from 'angular2/core';
import {ROUTER_DIRECTIVES, Router, RouterLink, RouterOutlet } from 'angular2/router';
import { CORE_DIRECTIVES, FORM_DIRECTIVES } from 'angular2/common';
import { Http, Headers, contentHeaders } from 'angular2/http';
import {UserVM} from '../../interfaces/user';
@Component({
selector: 'login',
templateUrl: './app/templates/login.html',
directives: [ROUTER_DIRECTIVES, RouterOutlet, RouterLink, CORE_DIRECTIVES],
providers: [Http]
})
export class LoginCmp {
login(event, username, password) {
event.preventDefault();
let body = JSON.stringify({ username, password });
this.http.post('http://localhost:3000/sessions/create', body, { headers: contentHeaders })
.subscribe(
response => {
localStorage.setItem('jwt', response.json().id_token);
this.router.parent.navigateByUrl('/actuals');
},
error => {
alert(error.text());
console.log(error.text());
}
);
}
}
loginService:
import { Component, View } from 'angular2/core';
import {RouteConfig, Router, RouterLink, RouterOutlet, Http} from 'angular2/router';
import { CORE_DIRECTIVES, FORM_DIRECTIVES } from 'angular2/common';
import { Http, Headers } from 'angular2/http';
import { contentHeaders } from '../common/headers';
export class LoginService {
constructor(public router: Router, public http: Http) {
}
login(event, username, password) {
event.preventDefault();
let body = JSON.stringify({ username, password });
this.http.post('http://localhost:3000/sessions/create', body, { headers: contentHeaders })
.subscribe(
response => {
localStorage.setItem('jwt', response.json().id_token);
this.router.parent.navigateByUrl('/actuals');
},
error => {
alert(error.text());
console.log(error.text());
}
);
}
}
Thierry, я пробовал первые 2 (http и рефакторинг loginComponent.У меня есть другая ошибка, так что это прогресс. Я получил следующее сообщение: ИСКЛЮЧЕНИЕ: Нет провайдера для ConnectionBackend! (LoginCmp -> Http -> ConnectionBackend) – JanVanHaudt
Вам нужно установить всех поставщиков в отношении http. Что-то вроде этого 'providers: [HTTP_PROVIDERS]' Не только «Http» один ... –