2016-01-11 60 views
0

我有一組項目的視圖,併爲每個項目如何將物品ID傳遞給我的控制器進行刪除?

...<tr ng-repeat="course in vm.courses"> 
     <td>{{ course.name }}</td> 
     <td>{{ course.url }}"</td> 
     <td>{{ course.duration }}</td> 
     <td> 
<a ng-click="deleteCourse(course.id)" class="btn btn-sm btn-danger">Delete course</a>... 

刪除按鈕,我需要通過course.id到angularjs控制器刪除

(function() { 

"use strict"; 

angular.module("app-courses") 
.controller("coursesController", coursesController); 

function coursesController($routeParams, $http){ 

    var vm = this; 

    vm.deleteCourse = function (id) { 

     $http.delete("/api/courses/" + id) 
       .then(function (response) { 
        vm.courses.splice(id, 1); 
       } 
    }; 
}})(); 

然後URL和id去API控制器。

但這種方式不起作用。可能我在視圖和控制器上都做了錯誤的事情。我如何設置角度?

+1

「它不工作」不是一個適當的問題描述。什麼具體不起作用?請注意,'splice()'需要索引...而不是id參見http://stackoverflow.com/questions/15453979/how-do-i-delete-an-item-or-object-from-an-array -using-ng-click/15454424#15454424 – charlietfl

+0

什麼不行?你打電話給API/MVC控制器或角部分?我現在很困惑。 – jpgrassi

+0

@jpgrassi如果你不明白你爲什麼回答? – charlietfl

回答

1

您很有可能忘記了您的ng-click表達式中deleteCourse(course.id)之前的vm.

這通常是小事情。

P.S.對於ng-repeat表達式,您應始終使用track by。在你的情況下,使用表達式"course in vm.courses track by course.id"

相關問題