ali
ali

Reputation: 75

Using angular.js TypeError: Cannot read property 'UserId' of undefined

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

Answers (1)

lorenago
lorenago

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

Related Questions