角度隐藏第一个元素在数组中的ng-repeat而不清空数组

时间:2016-06-12 10:06:21

标签: angularjs angularjs-ng-repeat

尝试做这样的事情

<md-card class="saved-search animated" ng-repeat="search in vm.savedSearches" md-theme="default" md-theme-watch>
    <md-card-header>
        <md-card-header-text>
            <span class="md-title md-body-2">{{search.address[0]}}</span>
            <span class="md-subhead">{{search.address | remainingAddress}}</span>
        </md-card-header-text>

function remainingAddress() {
    return remainingAddress;

    ////////////////

    function remainingAddress(input) {
        let newArray = input;
        return input ? newArray.shift().join(',') : input;
    }
}

我希望将第一行地址显示为有效的标题,以及下一行的地址的剩余部分。但问题是剩下的地址和shift()它总是返回空数组我猜是因为多次shift()清除了循环中的数组。

2 个答案:

答案 0 :(得分:0)

shift不返回数组,它返回已删除的数组元素,试试这个

function remainingAddress() {
    return remainingAddress;

    ////////////////

    function remainingAddress(input) {
        let newArray = input;
        if(input){
            newArray.shift()
            return newArray.join(',')
        }
        return input;
    }
}

答案 1 :(得分:0)

您可以使用limitTo过滤器和Array.join方法:

<span class="md-title md-body-2">{{search.address[0]}}</span>
<span class="md-subhead">
    {{ (search.address | limitTo: -(search.address.length - 1)).join(',') }}
</span>

通过将负数-n传递给limitTo过滤器,您要求它返回数组的最后n项。

参考:limitTo