1
リピーターエレメントから隠す小さなフィルターを作成しようとしています。angularjs - リピーターから隠れるフィルター
のは、私の範囲であることを言ってみましょう:
$scope.test = [
{id: 1,name: "Test number 1"},
{id: 2,name: "Test number 2"},
{id: 3,name: "Test number 3"},
{id: 4,name: "Test number 4"},
{id: 5,name: "Test number 5"},
{id: 6,name: "Test number 6"},
{id: 7,name: "Test number 7"},
{id: 8,name: "Test number 8"},
{id: 9,name: "Test number 9"},
{id: 10,name: "Test number 10"}
]
と
が私のリピータで、私はこのような何かをやっている:私は私のフィルターを書き始めたが、私は行き詰まって<div ng-repeat="t in test| hide:[1,6]"></div>
。これは私がこれまで持っているものです:私はフィルターをどうしようとしています何
filter('hideIDs', function() {
newArray= [];
function(zone, IDS) {
var containsObject, newArray;
containsObject = function(obj, list) {
var i;
i = void 0;
i = 0;
while (i < list.length) {
if (list[i] === obj) {
return true;
}
i++;
}
return false;
};
angular.forEach(IDS, function(hide) {
return angular.forEach(test, function(t) {
if (t.id === hide) {
return
} else {
if (containsObject(t, newArray)) {
return
} else {
newArray.push(t);
}
}
});
});
return newArray;
};
});
は次のとおりです。
t.id
を非表示にする必要がある場合は、チェックし、そうであれば、return
newArray
私が持っている問題がある:非表示に
idは最初のループ上の1で、その後、6がプッシュされます
012第2のループhovewerには、非表示にIDが6であり、次いで1
をプッシュ取得し、私はとにかくそれらの両方を有する終わります。
提案?
あなたは、効率的な角度の方法でこれをどう実現するのでしょうか?
ありがとうございました
うん、それはうまく動作する。提案に感謝 – Nick
このスティールの書き込みは「なぜ私の角型アプリケーションが遅すぎるのですか?」という結果になります。 –
@PetrAveryanovあなたのコメントをもう少し詳しく説明できますか?私は実際に私のアプリが遅くなってくるのを心配しています – Nick