0

angularjsでフィルタを作成するとき、配列内の前の項目にアクセスするにはどうすればよいですか? つまり、現在の要素を前の要素と比較したい

4

1 に答える 1

1

何を達成しようとしているのかを正確に把握するのは難しいですが、ng-repeat を使用している場合は、次のことができると思います。

HTML:

<div data-ng-repeat="element in elements">
    <div>{{ element | myFilter:elements:$index</div>
</div>

Javascript

.filter("myFilter", function(){
    return function(input, elements, index){

        if(index > 0){
            var previousElement = elements[index - 1]
        }

        return input;
    }
});

編集

やろうとしていることを指定したので、別の方法でフィルターを使用して、代わりに重複した日付を削除できます。

フィルターは次のとおりです。

.filter("uniqueDates", function(){
    return function(input){
      var returnInput = [];
        for(var x = 0; x < input.length; x++){
            if(returnInput.indexOf(input[x]) === -1){
                returnInput.push(input[x]);
            }
        }

      return returnInput;  
    };
})

これは、html を含む jsfiddle であり、そこから推定できるすべてが配線されています: http://jsfiddle.net/nE9EE/

于 2013-04-18T17:35:40.433 に答える