Új hozzászólás Aktív témák

  • Zedz

    addikt

    Sziasztok,

    Angular 2 mesterekhez ( és igazából bárkihez aki foglalkozott vele :DDD ) fordulnék most.
    A cél, hogy async megnézzem egy formnál, hogy a username már létezik-e az adatbázisban.

    A componentem azon része ami meghívja a validátort, így fest:

    'username': [null, [
    Validators.required, Validators.minLength(4), Validators.maxLength(12), this.ussr.getUserNameFromServer
    ]],

    A service pedig így:

    import { Injectable } from '@angular/core';
    import { Http, Response, Headers, RequestOptions } from '@angular/http';
    import { FormControl } from '@angular/forms';
    import 'rxjs/add/operator/map';

    @Injectable()
    export class UserService {

    constructor (private http: Http) {}

    private extractData (res: Response) {
    let body = res.json();
    return body || { };
    }

    getUserNameFromServer = (c: FormControl) => {

    const promise = new Promise (
    (resolve, reject) => {
    this.http.get('https://jsonplaceholder.typicode.com/users/1')
    .map(this.extractData)
    .subscribe(
    (res: any) => {
    if (c.value == res.username) {
    console.log('taken')
    resolve({'usernameTaken': true})
    } else {
    console.log('ok')
    resolve(null)
    }
    },
    err => { console.log(err) }
    )
    }
    );

    return promise;

    }

    }

    A probléma az, hogy a formom mindig invalid lesz. Több SO-s postban is így csinálják és elvileg végül ment mindenkinek, illetve pár blog cikk alapján is valahogy így kellene. Esetleg valakinek van ötlete, hogy mi lehet a baj?

Új hozzászólás Aktív témák

Hirdetés