gpt4 book ai didi

javascript - Firebase:从另一个对象检索数据

转载 作者:行者123 更新时间:2023-11-28 07:26:48 25 4
gpt4 key购买 nike

我在 Firebase 中有两个对象,我正在尝试通过将其键与我的 user 值相匹配来从 users 对象检索网址。 消息对象。

我的数据如下所示:

{
"messages" : {
"-JmY3zLmz9_6MjLRJCch" : {
"message" : "test",
"published" : 1428665136553,
"user" : "twitter:14075704",
"username" : "realph"
}
},
"users" : {
"twitter:14075704" : {
"pic" : "https://pbs.twimg.com/profile_images/1180195102/23684_378330977259_680962259_4275328_5191_n_normal.jpg"
},
"twitter:86584100" : {
"pic" : "https://pbs.twimg.com/profile_images/378800000196615428/dfb3b5fbdc1a260cea977dc3f24262ab_normal.jpeg"
}
}
}

我正在尝试将 messages.userusers.key() 进行匹配,以便检索 pic 值。

app.js

var ref = new Firebase("https://url.firebaseio.com/");
var messagesRef = ref.child('messages');
var usersRef = ref.child('users');
var currentUser = null;

messagesRef.orderByChild("published").on('child_added', function(snap) {
$scope.messages = $firebaseArray(messagesRef);
$scope.users = $firebaseArray(usersRef);
});

index.html

<div ng-repeat="message in messages">
{{ message.username }}
{{ message.message }}
{{ message.user }}
<img ng-src="IMAGE TO GO HERE" />
</div>

最简单、最好的方法是什么?我现在很困惑。

感谢任何帮助。提前致谢!

最佳答案

由于 users 是一个对象(它看起来像一个由 userId 键控的字典),只需检查属性即可。您可以使用 bracket notation使用字符串变量获取对象的属性。这对于具有类似字典设置的对象来说非常有用,因为属性名称是字典的键。

最简单的是,将 user 字符串转换为其图像 src 的函数如下所示:

$scope.getImage = function (user) {
var users = $scope.users;
if (users[user] != null) { //check if the property exists
return users[user].pic;
}
return "No user found";
};

HTML:

<div ng-repeat="message in messages">
Image src: {{ getImage(message.user)}}
<img ng-src="{{getImage(message.user)}}" />
</div>

查看此plunker

关于javascript - Firebase:从另一个对象检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29561426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com