2016-07-16 3 views
0

Просто начните работу с Angular 2 на проекте Ionic 2. У меня есть простая форма входа:Angular 2 ngModel return [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> 

На внутреннем интерфейсе у меня есть объект

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

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

Когда я ввожу имя пользователя и пароль, хотя и пытаюсь получить доступ к данным, используя console.log пароля показывает, как:

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

Пытаясь что-то вроде this.loginData.Password = String(this.loginData.Password); результатов в одно и то же.

Это также приводит к той же самой вещи console.log(JSON.stringify(this.loginData.Password));

+0

Попробуйте console.log ('logindata', this.loginData.Email, this.loginData.Password); –

+0

Выполнение этого дает мне '[object Object]' – Jhorra

+0

Он возвращает массив. Не знаю, почему console.log ('logindata', this.loginData.Password [0]) –

ответ

1

Вопрос заключается в том, что ngModel не принимает интерполяции в качестве аргумента.

ngModel Documentation

ваш код должен выглядеть следующим образом:

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

это, кажется, работает просто отлично:

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


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

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

Логин:

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

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

Если я не вижу, что это похоже на мой взгляд. – Jhorra

+0

Это потому, что вы редактировали свой вопрос, помните? Он все еще не работает? –

+0

Я только что заработал, и по какой-то причине, когда я помещал значения отдельно, а не в объект, он внезапно начал работать. – Jhorra

-1

я смог найтиобходной путь. Я не знаю, почему это работает, а другие нет, но если я хранить значения этого пути

Email: string; 
    Password: string; 

И не в объекте, он работал отлично.

+0

[В этом плунтере] (http://plnkr.co/edit/LGkhWPQq0WSsi6Aumo2v?p=preview) вы можете видеть, что ваш исходный код работает исправно (хотя, используя объект 'loginData'. – sebaferreras

+0

Я не знаю что сказать, я скопировал этот код прямо из своего приложения. По всем счетам он должен работать. Я сделал много приложений с угловым 1, и это достаточно близко, что я знал, что это должно сработать. Я понятия не имею, давая мне этот результат. – Jhorra

Смежные вопросы