2017-03-21 8 views
3

angular2では、私のHTMLはjavascriptでremoveThisFormを呼び出しています。このイベントはFile Arrayのオブジェクトです。ファイル配列の各オブジェクトに対して、私はangular2でフォームを生成します。 JavaScriptでスプライスはjavascriptの最初の要素を削除できません

(click)=removeThisForm(event) 

、私は中に通過しているファイルを削除しようとしています。

removeThisForm(file) { 
    var removableIndex = arr.indexOf(file); 
    if (removeIndex >= 0) { 
     arr = arr.splice(removableIndex); 
    } 

私は最初のものを除いて、中に渡す任意のフォームを削除することができています。私はシフト()、スライス()とスプライス(0,1)を試した。私がスプライス(0,1)をしたとき、「フォームが接続されていないため、フォームの提出がキャンセルされました」というエラーが表示されます。

+0

「arr.splice(removableIndex、1);」を試してください。 –

答えて

5

Array.prototype.spliceメソッド(削除する要素の数を表す整数)に2番目の引数を渡すことを省略しました。これを試してください。

removeThisForm(file) { 
    var removableIndex = arr.indexOf(file); 
    if (removeIndex >= 0) { 
     arr.splice(removableIndex, 1); 
    } 
} 

また、Array.prototype.splice方法が削除された要素を含む配列を返します。したがって、あなたが言うことができません。

arr = arr.splice(removableIndex, 1); 

それはArray.prototype.spliceメソッドの戻り値を使用してarrが上書きされますよう。

+1

Oh ha。私はそれが削除された要素の配列を返すのか分からなかった。ありがとう! –

関連する問題