2017-01-31 17 views
0

に未定義のは、次のフィルタは、私は本当にこのようなフィルタを必要とし、一度だけ http://plnkr.co/edit/BBqnTlxobUpiYxfhyJuj?p=preview変換配列要素に番号と空の配列

.filter('arrayDiff', function() { 
return function(array, diff) { 
    console.log(diff); 
    var i, item, 
     newArray = [], 
     exception = Array.prototype.slice.call(arguments, 2); 

    for(i = 0; i < array.length; i++) { 
    item = array[i]; 
    if(diff.indexOf(item) < 0 || exception.indexOf(item) >= 0) { 
     newArray.push(item); 
    } 
    } 

    return newArray; 

}; 
}); 

選択ボックスのオプションを選択するために使用されているが、問題があることです私のdiff変数は配列ではなく、数値(選択された値)です。 (1,2,3または未定義): このコードでdiff1,2、[3]または[]です。 アレイの代わりに番号を使用するように、このようなフィルタを書き換える方法を教えてください。 これは私がフィルタを使用する方法である。このようなhttp://plnkr.co/edit/L9hBa5LapAV76wHrwRnX?p=preview

+0

どこで、どのようにこのフィルタを使用していますか?コードを追加してください –

+0

'indexOf'の代わりに' === 'を使用しますか?質問自体に[mcve]がなければ本当に難しいです。 –

+0

これは私の使い方です:http://plnkr.co/edit/L9hBa5LapAV76wHrwRnX?p=preview – maidi

答えて

0

何か:

.filter('arrayDiff', function() { 
return function(array, diff) { 
    console.log(diff); 
    var i, item, 
     newArray = [], 
     exception = Array.prototype.slice.call(arguments, 2); 

    for(i = 0; i < array.length; i++) { 
    item = array[i]; 
    if(diff == item || exception.indexOf(item) >= 0) { 
     newArray.push(item); 
    } 
    } 

    return newArray; 

}; 
}); 
+0

これはうまくいきませんでした。ここでテストできます:http://plnkr.co/edit/L9hBa5LapAV76wHrwRnX? p = preview – maidi

+0

あなたがここでやろうとしていることを正確に知ることは難しい –

+0

それぞれの選択オプションは一度しか選択できません。この例では、どのように動作するかを見ることができます。http://plnkr.co/edit/BBqnTlxobUpiYxfhyJuj?p=preview、ここからフィルタを取得しました。フィルタはng-repeatで呼び出されます。

関連する問題