更新后角度视图未更新

时间:2015-05-19 18:55:13

标签: angularjs

我的观点在更新后没有得到更新。这是我的控制器

 $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);
    });

有人可以帮我这个吗

2 个答案:

答案 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');
    });


};