我正在构建一个仪表板以显示正在进行和已解决的问题。我使用过滤器对angular的ng-repeat进行了所有工作,并按日期分组。这是我到目前为止所获得的快速样本:

<div ng-app="myApp">
        <div ng-controller='TestGroupingCtlr'>
            <div ng-repeat="item in MyList | filter: {status: 'Closed'} | groupBy:'groupfield' " >
                <h2 ng-show="item.groupfield_CHANGED">{{item.groupfield}}</h2>
                <ul>
                    <li>{{item.whatever}} - Status: {{item.status}}</li>
                </ul>
            </div>
        </div>
</div>

这是我的范围数组:
$scope.MyList = [
    {groupfield: 'Day Before', whatever: 'Server X down', status: 'Open'},
    {groupfield: 'Yesterday', whatever: 'Access issues', status: 'Open'},
    {groupfield: 'Yesterday', whatever: 'Server Z is down', status: 'Closed'},
    {groupfield: 'Today', whatever: 'Network problem', status: 'Closed'},
    {groupfield: 'Today', whatever: 'Network is down', status: 'Closed'}
];

我的JSfiddle示例:
http://jsfiddle.net/R8YZh/6/

我的问题是,我需要仅在“今日”组下显示案件的案件。现在,从技术上讲,我可以简单地创建一个新的ng-repeat来仅显示“Open”问题,然后将其隐藏在我的第一个列表下。但是由于我有一个非常大的模板,其中包含很多问题详细信息,因此我要避免2个维护2个模板。

有谁知道是否有一种方法可以简单地使用现有的Ng-repeat并告诉您将所有Open问题显示在索引数组的末尾,以便它以某种方式进入Todays组?任何帮助表示赞赏。

这是我希望显示的内容:
Yesterday

Server Z is down - Status: Closed

Today

Network problem - Status: Closed
Network is down - Status: Closed
Server X down - Status: Open
Access isses - Status: Open

最佳答案

将过滤应用于li元素级别而不是在组级别执行可能更容易

<div ng-app="myApp">
        <div ng-controller='TestGroupingCtlr'>
            <div ng-repeat="item in MyList | groupBy:'groupfield' " >
                <h2 ng-show="item.groupfield_CHANGED">{{item.groupfield}}</h2>
                <ul >
                    <li ng-show="item.status=='Closed' || item.groupfield=='Today' ">{{item.whatever}} - Status: {{item.status}}</li>
                </ul>
            </div>

        </div>

</div>

07-23 14:00