【问题标题】:Ionic 2 Variable isn't showing in viewIonic 2 变量未显示在视图中
【发布时间】:2017-05-04 06:00:36
【问题描述】:

我在使用 Angular 2 时遇到了一些问题(我是新手)。我的 Ionic 应用程序无法识别我的阵列。每当我尝试从 may arry 或 object 访问属性时,ionic 2 说我的变量为空。 这是我的代码: 我的“观点”:

这是我的控制器 showItem.ts:

【问题讨论】:

  • 欢迎来到 SO。请在问题本身中包含代码,而不是链接到代码的图像。
  • 您能否向我们展示您的数据格式以进一步帮助您解决问题。
  • 好吧,您无处可将值插入book
  • 我发现了问题……这是一个已知的 Angular 错误。 Angular 需要知道返回的对象类型。就我而言,我不知道为什么,但是我从 ajax 调用返回的结果是转换为 Object 中的 Object。我只想要 1 个对象,我将展示我是如何解决我的问题的。谢谢大家,伙计们。抱歉我的打印屏幕帖子,这是我第一次来这里,我不知道如何正确显示我的代码。

标签: angular ionic2


【解决方案1】:

尝试将您的图书类型设为any,看看您的数据是否首先分配给图书:

book: any = [];

此外,当您将数据推送到书中时,请尝试使用 this.book 而不是将 this 传递给函数。

this.book.push({id:obj.id, title: obj.title, imagem: obj.imagem});

【讨论】:

    【解决方案2】:

    问题出在我的提供商身上。实际上,我必须将其强制转换为一个对象,这有点像一个错误。我的 json 在一个对象内返回一个对象。我通过将我的 res.json() 转换为我的对象名称解决了这个问题:“书”。像这样: res.json()['book']

    buscarLivro(id) { 如果(this.dataBook) { 返回 Promise.resolve(this.dataBook); } // 还没有数据 返回新的承诺(解决 => { this.http.get('http://localhost:8000/api/books/'+id) .map(res => res.json()['book']) .subscribe((数据:任何)=> { this.dataBook = 数据; 解决(this.dataBook); }); }); }

    【讨论】:

    • 只是说,你弄错了,你没有在这里铸造任何东西。您正在做的是进入 JSON 并提取您需要的数据,而不是分配完整的响应,即提取 book 的内容,而不是强制转换任何内容。不,这绝对不是错误。 ;) ;)
    • 哦,是的,这是真的。我在某处看到这个问题是一个错误,但你的解释比这更有意义。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-27
    • 2017-08-26
    • 2017-07-03
    相关资源
    最近更新 更多