Reputation: 75
In my angular App I have this CrudService that contain delete service
app.service('CrudService', function ($http) {
this.delete = function (apiRoute, dataModel) {
var request = $http({
method: "delete",
url: apiRoute
});
return request;
}
})
and I have this 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);
})
}
}]);
In my 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>
when I try to delete a user it gives me an error that connot read property UserId of Undefined however I have UserId table in my database.
however,if I set dataModel.UserId equal to 3 for example, it delete the user that have id 3
any help !?
Upvotes: 1
Views: 80
Reputation: 435
First of all, I see that you build the apiCrud requesting two parameters, however you only use the first one.
this.delete = function (apiRoute, dataModel) {
var request = $http({
method: "delete",
url: apiRoute
});
return request;
}
And when you call it, you do not pass on the data model either:
var deletedUser = CrudService.delete(apiRoute);
Where the dataModel variable is defined? Are you sure that dataModel collects the data of the selected user?
Upvotes: 1