【问题标题】:How to reload content of an article when redirected to it through AngularJS?通过AngularJS重定向到文章时如何重新加载文章的内容?
【发布时间】:2013-11-28 12:09:16
【问题描述】:

我将 Django 和 AngularJS 用于我的一个项目,当我更新一篇文章时,我已将其设置为重定向到 this 文章(即 - 在表单提交时)。问题是 - 即使后端的一切都更新得很好,它在前端并没有做同样的事情。如果我在浏览器上点击f5(刷新),我会得到新信息,如果我不点击,内容仍然保持不变。

更新控制器

var EditCtrl = function($scope, $stateParams, $http, Revision, $location) {

    $http.get('http://api.local/api/v1/articlerevision/' + $stateParams.id).success(function(data) {
        $scope.revision = data;
    });


    $scope.update = function() {
        Revision.update($scope.revision);
        $location.path('/wiki/revision/'+$stateParams.id);
    };

};

视图控制器

var ViewCtrl = function($scope, $stateParams, $http) {
    $http.get('http://api.local/api/v1/articlerevision/' + $stateParams.id).success(function(data) {
        $scope.revision = data;
    });

    $scope.toggle = false;
    $scope.comments = false;
};

我可以在视图控制器中放置某种刷新命令吗?

【问题讨论】:

    标签: javascript django function angularjs controller


    【解决方案1】:

    看起来像一个同步问题:当您重定向到修订视图时,您的更新尚未完成。

    尝试更改为类似的内容:

    var EditCtrl = function($scope, $stateParams, $http, Revision, $location) {
    
        $http.get('http://api.local/api/v1/articlerevision/' + $stateParams.id).success(function(data) {
            $scope.revision = data;
        });
    
    
        $scope.update = function() {
            Revision.update($scope.revision, /* success */ function(data) {
                $location.path('/wiki/revision/'+$stateParams.id);
            });
        };
    };
    

    【讨论】:

    • 谢谢你,解决了它:)
    【解决方案2】:

    由于调用的异步性质,这似乎是一个问题。您的编辑控制器似乎正在进行 2 次异步调用

    $http.get('http://api.local/api/v1/articlerevision/' + $stateParams.id).success(function(data) {
        $scope.revision = data;
    });   //This call is async
    
    
    $scope.update = function() {
        Revision.update($scope.revision);  //Is this async?
        $location.path('/wiki/revision/'+$stateParams.id);  //Does this navigation happen before update is complete?
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-09
      • 1970-01-01
      • 2016-06-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多