2013-06-28 9 views
5

グリッドからアイテムを削除するソリューションを探していました。だからこそ私は前に質問を投稿した。しかし、私が誰かから解決策を得たとき、その時点で問題を解決したと思っていましたが、それはFilterメソッドを使用していました。angularjsスプライスを使用して選択項目を削除する機能

ただし、スプライス機能を使用してアイテムをGRIDから削除します。

は、ここで私はそれがスプライスの機能を使用して実行したい私の古い質問リンク Angularjs, Applying Action on Selected Checkboxes in Table

です。

私が直面している問題は、インデックス値が選択/フェッチされた場合にアイテムを削除できるように、インデックス値を関数に渡すことです。私はそれを修正する方法がわかりません。

誰かが問題を解決し、更新されたコードにデモリンクを付けるといいと思います。

ここで私がこれまで試みてきたPlunker Linkがあります。 (MDNから)JSのarray.splice方法のPlunker link to show my execution

+0

スプライスのplunkerデモ –

答えて

6

私はそれが動作するためにチェックボックスするNGクリック追加した

http://plnkr.co/edit/DSVPj3holsf4nhNvEMbQ?p=preview

+0

ありがとうございます、 コードは初めてですが、次回はチェックボックスを選択すると2つの値が削除されますか? –

+0

初めてのページロード - >チェックボックスを選択してから削除をクリックすると、アイテムが削除されますが、他のチェックボックスをクリックするとページを更新せずに2つのアイテムを削除します。 –

+0

申し訳ありませんが1つの行が今プランナーを更新しました –

7

定義:

array.splice(インデックス、howManyが[、エレメント1 [、... [、elementN]]])

$scope.remove = function(index){ 
    $scope.students.splice(index, 1); 
}; 

DEMO PLUNKER

だから、あなたのremove関数は次のように記述する必要があります

編集:私はあなたがremove機能を指すNG-クリックで「×」ボタンをクリックして項目を削除したい考え出し

。あなたが学生のプロパティにあるチェックボックスngModelを設定し、trueに設定し、このプロパティを持っているそれらの学生を除去するであろう学生に$ウォッチャーを置くよりもすべきであるチェックボックスをクリックして項目を削除するには

<tr class="color2" ng-repeat="student in students | filter:search | filter:new_search"> 
    <td>{{student.Rollno}} <input type="checkbox" ng-model="student.checked"> </td> 
    <td>{{student.Name}}</td> 
    <td>{{student.Uni}} <button ng-click="remove($index)">x </button></td> 
</tr> 
$scope.$watch('students', function(students){ 
    if(!students){ 
    return; 
    } 
    $scope.students = students.filter(function(student){ 
    return !student.checked; 
    }); 
}, true); 

PLNUKER

+0

既にこれを行っていますが、これはグリッドから選択した項目を削除しません。 –

+0

私が添付したプランカのリンクは別のことを証明します。 – Stewie

+0

先生、あなたのデモPlunkerのリンクをチェックしました。最初のチェックボックスをオンにして、最後のチェックボックスをオンにしましたが、グリッドから1つのアイテムしか削除しませんでした。 –

関連する問題