我希望找到实现以下目标的最佳方法(Angular方式): 我有一个包含消息列表的数组,每个消息包含作者的名称,文本以及写入时的时间戳。 每条消息都在表格中绘制,但是消息可以堆叠在一起,如下所示:
布局看起来像这样:
message = { author: 'x', message: 'Hello World', timeStamp: new Date() }
table
tbody
tr( data-ng-repeat = 'message in conversation.messages | parseMessage')
td.self
div.messageAuthorProfile( style = 'background-image: url(/pictures/{{ message.author | parseAuthorEmail }}/profile/0.jpg)')
div.conversation
label.messageAuthorName {{ message.author | parseAuthorName }}
div.message
div.conversationTimeStamp
span {{ message.timeStamp | parseTimeStamp }}
div.conversationMessage
p {{ message.message }}
通过获取表的最后一个元素,检查其高度并在满足条件时附加消息,使用jquery可以“轻松”实现这一点,但是我很难在纯Angular.js解决方案中实现此功能。
有没有人能给我一些有关实现这个目标的可能方法的见解?
最诚挚的问候和感谢阅读!
免责声明:我只开始使用angular.js大约一个星期,所以我目前正在学习将几个项目100%jquery移植到角度,但是在研究和检查在线文档后我无法想出实现这一目标的“干净方式”。
答案 0 :(得分:0)
考虑这一点的最佳方法是考虑如何使用数组数据执行此操作,然后让您的视图反映数据。
因此,如果我理解你的问题,你就是试图通过作者对行进行分组 我倾向于使用underscore.js进行数组操作(这非常好) http://underscorejs.org/#groupBy
它将由作者对您的数据进行分组 然后在你的角度视图中,有2 ng重复。您的组的外部ng-repeat,以及消息和时间戳的内部 这将显示为每位作者列出的消息和时间戳。