Member 12997509 Ответов: 2

Не обновляет данные в angular js


Я пишу веб в MVC фреймворке с angular js.

мое заявление таково:
var app = angular.module("AngularApp", []);


и мой контроллер:
app.controller("EmpCtrl", function ($scope, EmployeeService) {
GetAllEmployee();
function GetAllEmployee() {

    var getAllEmployee = EmployeeService.getEmployee();
    getAllEmployee.then(function (emp) {
        $scope.employees = emp.data;

    }, function () {
        alert('data not found');
    });
}


$scope.deleteEmployee = function (id) {
    var getData = EmployeeService.DeleteEmp(id);
    getData.then(function (msg) {
        GetAllEmployee();
        alert('Employee Deleted...');
        $scope.h1message = true;
        $scope.message = "ED";
    }, function () {
        $scope.h1message = true;
        $scope.message = "Error in Deleting Record";
    });
}
});

и моя служба:
app.service("EmployeeService", function ($http) {
this.getEmployee = function () {
    debugger;
    return $http.get("/EmployeeModels/GetAllEmployee");
};

//Delete Employee
this.DeleteEmp = function (employeeId) {
    var response = $http({
        method: "post",
        url: "/EmployeeModels/deleteEmployee",
        params: {
            employeeId: JSON.stringify(employeeId)
        }
    });
    return response;
}

});


и мое действие mvc-это :
private ApplicationDbContext db = new ApplicationDbContext();

    public JsonResult GetAllEmployee()
    {
        using (ApplicationDbContext db = new ApplicationDbContext())
        {
            var employeeList = db.EmployeeModels.ToList();
            return Json(employeeList, JsonRequestBehavior.AllowGet);
        }
    }

    //DeleteEmployee
    public string DeleteEmployee(string employeeId)
    {
        if (employeeId != null)
        {
            int no = Convert.ToInt32(employeeId);
            var employeeList = db.EmployeeModels.Find(no);
            db.EmployeeModels.Remove(employeeList);
            db.SaveChanges();
            return "Employee Deleted";
        }
        else { return "Invalid Employee"; }
    }

и файл HTML:

<div ng-app="AngularApp" ng-init="name='hn';backGroundColor='red';
     person={firstname:'jo',lastname:'hary'}">
    <div ng-controller="EmpCtrl">
        <table border="1" width="100%">
            <tr>
                <th ng-click="orderByMe('EmployeeId')">employee id</th>
                <th ng-click="orderByMe('Address')">addres</th>
                <th ng-click="orderByMe('EmailId')">email id</th>
                <th ng-click="orderByMe('EmployeeName')">employee name</th>
            </tr>
            <tr ng-repeat="emp in employees|orderBy:orderByMe">
                <td> {{emp.EmployeeId}}</td>
                <td> {{emp.Address}}</td>
                <td>{{emp.EmailId}}</td>
                <td>{{emp.EmployeeName}}</td>
                <td>
                    <a data-ng-click="deleteEmployee(emp.EmployeeId)" style="cursor:pointer;">Delete</a>|
                    
                </td>
            </tr>
        </table>
        <br />
 </div>
</div>



представление данных в порядке. и я называю GetAllEmployee() в функцию "Удалить". но когда я удаляю запись в таблицу базы данных, просмотр не обновляет данные?

Что я уже пробовал:

не обновляет данные при удалении записи.

pankaj287

Не могли бы вы подтвердить, что метод GetAllEmployee вызывается из вашего успешного метода delete??

2 Ответов

Рейтинг:
0

Member 10741989

// Find index of the user
var index = $scope.users.indexOf(id);
// Remove user from array
$scope.users.splice(index, 1);




$scope.DeleteUser = function (id) {
    $http.delete('/api/users/' + id).success(function (data) {
        var index = $scope.users.indexOf(id);
        $scope.users.splice(index, 1);
    });
}


Member 12997509

данные в таблице sql и удалить с помощью действия mvc. При удалении записи данные в представлении не обновляются.

Рейтинг:
0

pankaj287

Я подозреваю, что это может быть из-за кэширования EF. Я бы очень рекомендовал выключить его, а затем попробовать то же самое. Для того же самого вы можете использовать "AsNoTracking" при извлечении записей из "DBContext".

public JsonResult GetAllEmployee() {
    using (ApplicationDbContext db = new ApplicationDbContext())
    {
            var employeeList = db.EmployeeModels.AsNoTracking().ToList();
            return Json(employeeList, JsonRequestBehavior.AllowGet);
    }
}