2015-11-29 42 views
0

分离结果为Div时我一直在努力找出如何在这种情况下,引导COL-MD-4的显示我的结果到单独的div上的逻辑。这是一个聊天消息应用程序,我正在尝试构建。有些房间和消息我希望每个房间只显示分组在一起的消息。AngularJs通过列值

我的结果($ scope.messages)看起来像:

messages = [ 
    {"room_id":1,"message_id":2,"message_content":"hiiii","message_time":"2015-11-28 23:22:57","user_name":"Aaaa1aa"}, 
    {"room_id":1,"message_id":1,"message_content":"hi there","message_time":"2015-11-28 23:22:40","user_name":"aaaa2aa"}, 
    {"room_id":2,"message_id":3,"message_content":"hyyy","message_time":"2015-11-28 23:23:07","user_name":"Guest"}, 
    {"room_id":2,"message_id":4,"message_content":"aaaaa","message_time":"2015-11-28 23:23:20","user_name":"aaaa2aa"} 
]; 

我要显示的每个结果集由ROOM_ID列分组,以便通过数据中继时,这套看起来像这样

<div class="col-md-4"> Room Id - 1 
aaaa2aa - hi there 
Aaaa1aa - hiiii 
</div> 

<div class="col-md-4"> Room Id - 2 
Guest - hyyy 
aaaa2aa - aaaaa 
</div> 

我觉得这样的事情威力工作尝试其他几个选项之后,但它不提供任何结果。

<div class="col-md-4" ng-repeat="data in messages"> 
<div ng-repeat="data in data[$index]"> 

{{data.user_name}} 
{{data.message_content}} 

</div> 
</div> 

感谢您的任何帮助。

这是对我工作,但你必须先添加模块过滤器的依赖性:

<div class="col-md-4" ng-repeat="data in messages | groupBy: 'room_id'"> 
    {{data[$index].room_id}} 
<div ng-repeat="data in data"> 
    {{data.user_name}} 
    {{data.message_content}} 
    </div> 
</div> 

回答

1

您可以使用groupBy分组结果:

(k, v) in messages | groupBy: 'room_id' 

另一个解决方案是使用filter

<div class="col-md-4" ng-repeat="data in messages | filter: '{'room_id': 2}'"> //show only items with room_id set to 2 and so on 

</div> 

但是,这个我这将是重复和多余的。

+0

这就是我想的,但由于某种原因,它提供了这个错误,并没有返回任何结果:https://docs.angularjs.org/error/$injector/unpr?p0=groupByFilterProvider – Spade

+0

编辑答案。通过替换'数据“(K,V)” –

+0

这两种解决方案给相关性错误:https://docs.angularjs.org/error/$injector/unpr?p0=groupByFilterProvider – Spade