2016-07-16 21 views
0

Nur mit kantigen 2 auf einem ionischen 2-Projekt begonnen. Ich habe eine einfache Login-Formular:Angular 2 ngModel Rückkehr [object]

<ion-list> 
    <ion-item></ion-item> 
    <ion-item> 
     <ion-label fixed>Email</ion-label> 
     <ion-input [(ngModel)]="loginData.Email" type="text" value=""></ion-input> 
    </ion-item> 
    <ion-item> 
     <ion-label fixed>Password</ion-label> 
     <ion-input [(ngModel)]="loginData.Password" type="password"></ion-input> 
    </ion-item> 
    </ion-list> 

Auf dem Backend ich das Objekt

export class LoginPage { 
    user: User; 
    local: Storage; 
    loginData = { Email: null, Password: null}; 

    login() { 
    console.log(this.loginData); 
    } 
} 

Als ich in den Benutzernamen und das Passwort eingeben müssen, wenn und versuchen, auf die Daten zuzugreifen ein console.log mit dem Passwort zeigt wie:

Object {Email: "email - removed", Password: "[object Object]"} 

so etwas wie this.loginData.Password = String(this.loginData.Password); Ergebnisse in der gleichen Sache Versuch.

Dies führt auch in der gleichen Sache console.log(JSON.stringify(this.loginData.Password));

+0

Try console.log ('Logindaten', this.loginData.Email, this.loginData.Password); –

+0

Doing das gibt mir '[object Object]' – Jhorra

+0

Es ist ein Array zurück. Nicht sicher, warum console.log ('Logindaten', this.loginData.Password [0]) –

Antwort

1

Das Problem ist, dass ngModel nicht Interpolation als Argument akzeptiert.

ngModel Documentation

Ihr Code sollte wie folgt aussehen:

<ion-input [(ngModel)]="loginData.Password" type="password"></ion-input> 

dies ganz gut zu funktionieren scheint:

<input type="text" [(ngModel)]="loginData.Email" > 


<input type="password" [(ngModel)]="loginData.Password" > 

<button (click)="login()">login</button> 

Login:

loginData = { Email:null, Password: null}; 

login() { 
    console.log(this.loginData); 
} 
+0

Es sei denn, es gibt etwas, das ich nicht sehe, das ist genau das, was meins aussieht. – Jhorra

+0

das ist, weil Sie Ihre Frage bearbeitet haben, erinnern Sie sich? Funktioniert es immer noch nicht? –

+0

Ich habe es gerade funktioniert, und aus welchem ​​Grund auch immer, wenn ich die Werte getrennt anstatt in einem Objekt setze, fing es plötzlich an zu arbeiten. – Jhorra

-1

Ich war in der Lage zu finden ein Problemumgehung. Ich weiß nicht, warum das funktioniert und der andere nicht, aber wenn ich die Werte speichern, auf diese Weise

Email: string; 
    Password: string; 

Und nicht in einem Objekt es funktionierte gut.

+0

[In diesem Plunker] (http://plnkr.co/edit/LGkhWPQq0WSsi6Aumo2v?p=preview) können Sie sehen, dass Ihr Original-Code richtig funktioniert (auch wenn durch das 'loginData' Objekt. – sebaferreras

+0

Ich weiß nicht, was ich sagen soll, ich diesen Code direkt aus meiner App kopiert. nach allem sollte es funktionieren. ich habe 1 apps getan viele Angular, und dies ist nahe genug, dass ich wusste, dass es funktioniert haben sollte. ich habe keine Ahnung, warum hielt es gib mir das Ergebnis. – Jhorra