Angular JS CRUD异步调用

时间:2015-05-21 15:50:30

标签: angularjs angularjs-routing

以下是我实施CRUD的问题和问题

我有一个列表页面,我有一个编辑页面,每个页面都有一个与之关联的控制器。

以下是与我的编辑页面关联的更新方法的代码。

$scope.UpdateEmp = function () {

 var empl = $scope.Employee;

 empFactory.empTest.update({ EmpID: $routeParams.EmpID, empval: empl }, function (data) { // update method in my resource uses $resource

 $location.path('/EmpList'); //redirect to list

 });

 };

问题1:

这里我在成功通话中包含了重定向操作($ location)。理想情况下,在完成更新时,必须进行重定向,但由于promise对象返回的概念,它甚至在更新之前就被重定向(我从承诺中理解)

在成功之后,我将重定向到我分配模型的List页面。这部分代码与列表页面相关联。我的理解是,每次加载列表页面时都会执行它。 (从调试开始,我也可以看到它的发生,但每次刷新时都没有调用API GET方法)

 $scope.Employees= empFactories.query();

问题2:

Query调用API控制器get方法获取数据。每次刷新页面时都不会调用API控制器。它随机发生。我尝试在我的$ resource调用API方法中包含cache:false,但它也不会每次都调用API GET方法。

更新1:

使用网络播放按钮" on"在Internet Explorer F12选项中,我可以看到更新操作按预期工作。

1 个答案:

答案 0 :(得分:0)

以下是我的问题的答案

在上面的例子中,我使用了MVC控制器。我应该明确地说出来。因此,每次都没有发生对Get方法的调用,当我添加如下属性时,它开始正常工作

 [OutputCache(NoStore=true,Duration=0,VaryByParam="None")]

我尝试使用WebAPI控制器的相同示例,在这种情况下,没有属性,它完美地工作

以不同的方式尝试事情需要花费大量时间并且有助于学习新东西:)