在变量:ionic中显示[对象对象]而不是数据

时间:2018-10-04 11:31:27

标签: javascript angular typescript ionic3

这是我的代码

this.facebook.login(['email', 'public_profile']).then((response: FacebookLoginResponse) => {
      this.facebook.api('me?fields=id,name,email,first_name,picture.width(720).height(720).as(picture_large)', [])
      .then((profile: any) => {
        let userData = {
          email: profile['email'],
          first_name: profile['first_name'],
          picture: profile['picture_large']['data']['url'],
          username: profile['name'],
          id: profile['id']
        }
        alert(userData);

在“模拟器”警报框中,输出显示为

  

[对象对象]

如何解决此问题?

3 个答案:

答案 0 :(得分:4)

由于您的userData可能是JSON解析对象,因此显示[object object]

尝试使用alert(JSON.stringify(userData)),我想它应该可以解决您的问题。

此外,如果您只想验证对象数据,则可以使用  console.log(userData)

答案 1 :(得分:1)

警报显示时,您需要使用JSON.stringify

import {Injectable} from '@angular/core';
import {myCollection} from  './gallery-data'; // my static array
import {Picture} from "./gallery-module/gallery/Picture"; // interface

@Injectable({
    providedIn: 'root'
})
export class GalleryService {
    Mycollection: Picture[] = myCollection;
    getCollection = JSON.parse(localStorage["Collection"]);

    constructor() {}

    save() {
        localStorage["Collection"] = JSON.stringify(this.Mycollection);
    }

    getPictures(): Picture[] {
        return (this.Mycollection);
    }

    remove(picId: number): void{
         this.Mycollection = this.Mycollection.filter(p => p.id !== picId);
            this.save();

    }

    add(title: string, url: string): void {
        const id: number = Math.max(0, ...this.Mycollection.map(({id}) => id)) + 1;
        const post: Picture = {
            title,
            url,
            id
        };
        this.Mycollection.unshift(post);
        this.save();

    }
}

答案 2 :(得分:0)

使用“ console.log(userData);”而不是“ alert(userData);”

  • alert()正在阻止并且在非调试环境中不容易被抑制
  • 控制台通常可以很好地格式化对象并允许遍历它们