2016-01-11 29 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"

相关问题