在我的有角度的应用程序中,我有这个包含删除服务的CrudService
app.service('CrudService', function ($http) {
this.delete = function (apiRoute, dataModel) {
var request = $http({
method: "delete",
url: apiRoute
});
return request;
}
})
我有这个userCntrl
app.controller('userCtrl', ['$scope', 'CrudService',
$scope.DeleteUser = function (dataModel) {
debugger
var apiRoute = baseUrl + "users/" + dataModel.UserId;
var deletedUser = CrudService.delete(apiRoute);
deletedUser.then(function (response) {
if (response.data != "") {
alert("Data Delete Successfully");
$scope.Clear();
$scope.GetUsers()
} else {
alert("Some error");
}
}, function (error) {
console.log("Error: " + error);
})
}
}]);
在我的html
中 <div ng-app="myapp">
<div ng-controller="userCtrl">
<div ng-view></div>
<table class="table table-hover general-table">
<thead class="grid-top-panel">
<tr>
<th style="display:none">StudentID</th>
<th>Name</th>
<th>Address</th>
<th>Age</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="user in users">
<td>{{user.FName}}</td>
<td>{{user.Address}}</td>
<td>{{user.Age}}</td>
<td style="text-align:right; color:white">
<span>
<span id="save" class="btn btn-danger margin-right-btn"
ng-click="DeleteUser(dataModel)">
Delete
</span>
</span>
</td>
</tr>
</tbody>
</table>
</div>
当我尝试删除用户时,它给我一个错误,提示我无法读取未定义的UserId属性,但是我的数据库中有UserId表。
但是,例如,如果我将dataModel.UserId设置为3,它将删除ID为3的用户
有帮助吗??
答案 0 :(得分:1)
首先,我看到您构建了要求两个参数的apiCrud,但是您只使用了第一个参数。
this.delete = function (apiRoute, dataModel) {
var request = $http({
method: "delete",
url: apiRoute
});
return request;
}
调用它时,您也不会传递数据模型:
var deletedUser = CrudService.delete(apiRoute);
在哪里定义了dataModel变量?您确定dataModel会收集所选用户的数据吗?