【问题标题】:How to get value out of Observable Array nested object如何从 Observable Array 嵌套对象中获取值
【发布时间】:2020-02-08 10:17:47
【问题描述】:
  • 我在这里搜索了这个问题的答案,但没有运气。

我有一个只包含一个条目的可观察数组:

我把它存储在 self.user()

POSData.Users.getByEmail(sEmail)
        .then(data => {
        //console.log(data)
        self.user.push(data);
    })

现在我只想提取一些值并将它们分配给它们自己的 observables,但是......我不能。

我已尝试以下方法来获取名字...

console.dir(self.user());

    //console.log(self.user()[0].data.firstName());
    //console.log(self.user().firstName());
    //console.log(self.user().data.firstName());
    //console.log(self.user()[0].data.firstName());
    //console.log(self.user().data[1].firstName());


有谁知道如何深入研究并获得我想要的信息?

感谢收看。

约翰

【问题讨论】:

  • 尝试做一个 ko.toJS(self.user()) 看看你在推送信息后实际上最终得到了什么结构。
  • 它显然是空的......这到底是什么?!?!怎么可能,当我 console.log self.user() 它在那里显示数据。
  • 你能把它放在一个小提琴里吗(不需要敲除我只是想在上下文中查看代码)

标签: javascript arrays object knockout.js


【解决方案1】:

您将从服务返回的原始数据存储到阵列中。您应该以该形式访问该数据的成员。 firstName 属性不是可观察的,它只是 data 属性中的一个字符串,因此您不应将其称为可观察的。您的示例中唯一可观察到的显然是self.user

根据您的屏幕截图,您的新数据如下所示:

{
  data: {
    firstName: 'John',
    lastName: 'Smith'
  },
  message: 'User retrieved successfully',
  status: null
}

如果您想在 user 数组中获取此对象的名字,您可以这样访问它:

self.user()[0].data.firstName

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-31
    • 2022-01-15
    • 1970-01-01
    • 2019-02-05
    • 2013-10-11
    • 2016-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多