0

次のような ng-repaet のフィルターを作成しました。

  $scope.filterRoutine = function(col) {
        return _.isEqual(col.Routine.IsIndoor, true);
}

正常に動作します (isEqual は true または false を返します)。

しかし、これは機能しません。その理由はわかりません(機能しないと言った場合、エラーは発生しませんが、ビューは変更されません)

 $scope.filterRoutine = function(col) {
         return _.forEach(tempData, function (temp) {
                    if (_.find(col.Exercises, { Exercise: temp })) {
                        return true;                          
                    } else {
                        return false;
                    }
            });
}

ここで行うこと (またはやりたいこと) は次のとおりです。tempData コレクションがあり、col.Exercises に tempData の項目が少なくとも 1 つある場合は、ビューに表示する必要があります。しかし、何らかの理由ですべてのアイテムがビューに表示されます。つまり、何もフィルタリングされていません。

私の推測では、この関数は常に true を返すためです (常に少なくとも 1 つの col.Exercises に tempData の項目が含まれている必要があるため)。

これを修正するにはどうすればよいですか。つまり、 tempData からの項目を含まないすべての列を非表示にするにはどうすればよいですか?

4

1 に答える 1