我正在开发一个角度应用程序,使用 Firebase 进行持久性。我在页面上有多个位置,每个位置都显示用户特定信息(即个人资料图片、当前登录状态等)。
我正在努力想出一个“好的”解决方案,让我能够接受 3 路数据数据绑定,并保持适当的关注点分离。
对于我的问题的一个非常具体的例子。我有一个 HeaderMessagesCtrl,它从 /users/x/messages 的 firebase 中提取消息列表。包含 fromUserId 的消息绑定到 $scope.messages;
我有一个角度视图,可以对消息集合进行 ng-repeat,对于每一行,我想使用 fromUserId 来确定用户的登录状态、profilePicUri 等。
function HeaderMessagesCtrl($scope, $timeout) {
$scope.messages = [
{fromUserId: 1},
{fromUserId: 2}
];
$timeout(function(){
$scope.messages.push({fromUserId: 3});
}, 1500);
}
上面的小提琴显示了一个示例集合,然后在以后进行修改。希望这可以帮助提供示例解决方案。
提前致谢。
编辑
我被要求提出一种模式,所以首先想到的是以下内容。
我正在考虑在范围变量上创建一个监视,其中包含 firebase 将更新的数组。此手表将与 UserService 联系以获取 profilePicUri,从而创建一个更像视图模型的范围数组,而不是 firebase 中数据的精确副本。
另一种选择是创建一个用户配置文件框小部件,您可以提供用户 ID,它会从 UserService 中找出 uri,并使用这些详细信息制作小部件 html 等。
无论哪种方式,我的斗争都是火力基地的“无关系”性质。