如何从 Observable Array 嵌套对象中获取值
Posted
技术标签:
【中文标题】如何从 Observable Array 嵌套对象中获取值【英文标题】:How to get value out of Observable Array nested object 【发布时间】: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() 它在那里显示数据。 你能把它放在一个小提琴里吗(不需要敲除我只是想在上下文中查看代码) 【参考方案1】:您将从服务返回的原始数据存储到阵列中。您应该以该形式访问该数据的成员。 firstName
属性不是可观察的,它只是 data
属性中的一个字符串,因此您不应将其称为可观察的。您的示例中唯一可观察到的显然是self.user
。
根据您的屏幕截图,您的新数据如下所示:
data:
firstName: 'John',
lastName: 'Smith'
,
message: 'User retrieved successfully',
status: null
如果您想在 user
数组中获取此对象的名字,您可以这样访问它:
self.user()[0].data.firstName
【讨论】:
以上是关于如何从 Observable Array 嵌套对象中获取值的主要内容,如果未能解决你的问题,请参考以下文章
使用 create 回调将嵌套对象映射为复杂 JSON 中的 observable
Knockout.js 使每个嵌套对象都成为 Observable
获取对象中 Observable<SomeObject> 的值
从 URL 下载嵌套 JSON 并制作 Observable Object SwiftUI,错误:“在调用中缺少参数 'from' 的参数”