我正在开发一个角度应用程序,使用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);
}
上面的小提示显示了一个样本集合,然后在以后进行修改。希望这有助于提供示例解决方案。
提前致谢。
修改
我被要求提出一个模式,所以下面首先想到的是。
我在考虑在scope变量上创建一个监视器,它包含firebase将要更新的数组。该手表将联系UserService以获取profilePicUri,从而创建一个更像是视图模型的范围数组,而不是firebase中数据的精确副本。
另一种选择是创建一个用户配置文件框小部件,你可以提供用户ID,它会从UserService中找出uri,并使用这些细节来制作小部件html等。
无论哪种方式,我的斗争都是火山基地的“无关系”性质。