0

我正在开发一个角度应用程序,使用 Firebase 进行持久性。我在页面上有多个位置,每个位置都显示用户特定信息(即个人资料图片、当前登录状态等)。

我正在努力想出一个“好的”解决方案,让我能够接受 3 路数据数据绑定,并保持适当的关注点分离。

对于我的问题的一个非常具体的例子。我有一个 HeaderMessagesCtrl,它从 /users/x/messages 的 firebase 中提取消息列表。包含 fromUserId 的消息绑定到 $scope.messages;

我有一个角度视图,可以对消息集合进行 ng-repeat,对于每一行,我想使用 fromUserId 来确定用户的登录状态、profilePicUri 等。

http://jsfiddle.net/brkAq/5/

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 等。

无论哪种方式,我的斗争都是火力基地的“无关系”性质。

4

0 回答 0