【问题标题】:angular restangular service is not working correctly角restangular服务无法正常工作
【发布时间】:2014-11-02 22:16:40
【问题描述】:

我有一个页面,其中包含 ng-init = find(),在我转到其他页面并对 db 执行某些操作后,原始页面中的数据会发生变化。然后我将用户重定向到原始页面。我希望看到第一页的变化。

$scope.find = function() {  
    Stats.query
         .then(function(stats){
              $scope.stats = stats;  
         });
};

Stats 是我通过注入 restangular 创建的服务。服务如下所示:

angular.module('mean.stats').factory('Stats', ['Restangular', 
    function(Restangular) {
    var stats = Restangular.all('stats');
    return {
        query: stats.getList()
    }
}]);

它不像我预期的那样工作。但是如果我使用传统的 $resource 方法,结果是正确的。

angular.module('mean.stats').factory('Stats', ['$resource', 
    function($resource) {
    return $resource('stats/:statsId', {
       statsId: '@_id'
    });
}]);

后来我发现这个restangular的东西也可以正常工作。我不太明白为什么会这样...有谁知道发生了什么?谢谢。

angular.module('mean.stats').factory('Stats', ['Restangular', 
    function(Restangular) {
    var stats = Restangular.all('stats');
    return {
        query: function(){
            return stats.customGETLIST('');
        }
    }
}]);

【问题讨论】:

  • 您是否在浏览器的“网络”控制台中看到正在拨打电话?所以你有一个错误信息?
  • 没有没有错误信息。我看到 put 也正确执行了。
  • 如果你 console.log 使用 restangular 调用结果会怎样?顺便说一句,您的第二个代码示例中缺少括号,这很令人困惑:-)
  • 我控制台日志并意识到矩形放置是成功的,我的数据库也告诉我同样的事情。但是重定向仍然没有显示正确的信息。我稍后会修复括号。

标签: angularjs resources promise restangular angular-services


【解决方案1】:

在您的第二个代码块中,您将 Stat.query 分配给由 getList() 返回的承诺,而不是调用 getList() 的函数。因此,在定义 Stat 工厂时,请求仅发送到服务器一次。为了让它工作,首先让Stat.query成为一个调用getList()的函数:

angular.module('mean.stats').factory('Stats', ['Restangular', 
    function(Restangular) {
    var stats = Restangular.all('stats');
    return {
        query: function() {
            return stats.getList();
        }
    }
}]);

然后在您的$scope.find 方法中调用Stat.query:(在query 之后添加()):

$scope.find = function() {  
    Stats.query()
         .then(function(stats){
              $scope.stats = stats;  
         });
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-06
    • 1970-01-01
    • 2018-01-08
    • 2012-01-20
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多