我的观点在更新后没有得到更新。这是我的控制器
$scope.UpdateEmp = function () {
var empl=$scope.Employee;
empFactory.empUpdate.update({ EmpID: $routeParams.EmpID, empval: empl });
$location.path('/EmpList');
};
在更新后的理想情况下,必须将页面重定向到EmpList,其中$ scope.Employee将查询更新的列表。但页面重定向甚至在更新之前发生,一旦更新完成,它甚至不在URL中看到的empList页面中。
我尝试的另一个选项是将重定向代码保留在promise方法中,如下所示
$scope.UpdateEmp = function () {
var empl=$scope.Employee;
empFactory.empUpdate.update({ EmpID: $routeParams.EmpID, empval: empl }).$promise.then(function () {
$location.path('/EmpList');
});
};
在这种情况下,url被视为预期的#/ EmpList,但是更新列表的调用不起作用。意思是,下面的代码没有到达MVC控制器以获取更新的数据
$scope.Employees = empFactories.query(function () {
console.log($scope.Employees);
});
有人可以帮我这个吗
答案 0 :(得分:0)
处理"成功"回调您的工厂方法来解决您的问题
empFactory.empUpdate.update(empId, employee).success(function(results){
//Update your scope variable with return results
$scope.Employee = results;
//Then redirect
$location.path('/EmpList');
});
答案 1 :(得分:0)
在工厂方法调用之后,您没有更新$ scope变量。对代码进行更改,如下所示,然后尝试。在小提琴中创建一个示例并分享以便更好地理解。
$scope.UpdateEmp = function () {
var empl=$scope.Employee;
empFactory.empUpdate.update({ EmpID: $routeParams.EmpID, empval: empl }).$promise.then(function (result) {
$scope.Employee = result;
$location.path('/EmpList');
});
};