2013-06-28 58 views
5

我正在尋找一個解決方案,從網格中刪除項目;這就是我之前發佈這個問題的原因。但是當我從某人那裏得到解決方案時,我認爲它解決了這個問題,但它使用了Filter方法。angularjs使用拼接刪除選定的項目功能

但是,我想要使用拼接函數從網格中刪除項目。

這裏是我的老問題鏈接 Angularjs, Applying Action on Selected Checkboxes in Table

我希望它使用拼接功能來執行。

現在,我面臨的問題是將索引值傳遞給該函數,以便該項可以被刪除,如果該索引值被選中/提取。我不知道如何解決它。

如果有人解決了問題並給出更新代碼的演示鏈接,那將會很好。

這是我迄今嘗試過的Plunker鏈接。 JS方法Array.splice方法的Plunker link to show my execution

+0

請看下面的plunker demo for splice –

回答

6

我加入了NG-點擊複選框以使其工作

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

+0

Thankyou for Reply, 您的代碼第一次非常有用,但下次我選擇複選框時,它會刪除2個值? –

+0

我的意思是第一次我加載頁面 - >我選擇複選框然後我點擊刪除,項目刪除,但沒有刷新頁面時,我點擊其他複選框,我點擊刪除它刪除2項。 –

+0

抱歉錯過了一行現在更新了重拳 –

7

定義(從MDN):

方法Array.splice(索引,的howmany [,元素1 [,... [,elementN]]])

所以,你remove功能應該寫成:

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

DEMO PLUNKER

編輯:

我想你想通過點擊帶有指向remove功能NG-點擊「X」按鈕,刪除該項目。

要通過點擊你應該設置複選框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

我附帶的plunker鏈接證明了其他情況。 – Stewie

+0

先生,我已經檢查過你的Demo Plunker鏈接,我在第一個複選框和最後一個複選框上剔除,但它只從網格中移除了一個項目。 –