【问题标题】:Angularjs - Resource returning promise [closed]Angularjs - 资源返回承诺[关闭]
【发布时间】:2018-01-09 21:50:43
【问题描述】:

请记住,我是 AngularJS 的初学者。我遵循了 angularjs 网站上的教程,并尝试将那里的东西应用到我自己的项目中。 我正在尝试使用 $resource 从我从 API 获取的 json 中获取数据,如下所示:

分类服务:

angular.module('core.category') 
.factory('Category', ['$resource', '$http',
    function($resource, $http) {
        return $resource('/api/categories', {}, {
            query: {
              method: 'GET',
              isArray: true
            }
        });
    }
]);

转到 url URL/api/categories 以这种格式返回 JSON:

[{"id":1,"name":"name","desc":"desc"}]

在一个组件中,我使用它来检索 json:

self.categories = Category.query();
console.log(self.categories);

我没有以 json 格式获取数据,而是在控制台中获取:

[$promise: Promise, $resolved: false]

我试过这个:

Category.query().$promise.then(function(data) {
   console.log(data);
});

得到了这个:

[$promise: Promise, $resolved: true]

为什么不获取json中的数据?可能是因为我正在运行一个 php 服务器吗?以及如何从 API 中检索 Json 格式的数据?

谢谢

【问题讨论】:

  • 返回一个稍后会解析的承诺/对象,因为从服务器获取数据需要一段时间。这里没有问题。
  • @deceze 谢谢,但我真的不明白你在说什么。我究竟如何得到它以便控制台记录 json?
  • 阅读“使用”下的“退货”部分:docs.angularjs.org/api/ngResource/service/$resource#usage
  • @deceze 再次感谢,但我已经尝试了那里的示例,但它们似乎不起作用。
  • 如果你在浏览器中打开URL/api/categories,你会得到什么?

标签: javascript angularjs angular-promise angular-services angular-components


【解决方案1】:

我尝试了与您相同的代码,并且拥有 [Resource, $promise: Promise, $resolved: true] (使用 $promise.then 时) where first 资源元素是 {id: 1, name: "name", desc: "desc"}。所以你有了 按照@yBrodsky 的假设检查您的网络服务器的实际响应。

感谢@yBrodsky 和@StanislavKvitash。我已经解决了这个问题。这是我的网络服务器的问题。

【讨论】:

    猜你喜欢
    • 2013-10-29
    • 1970-01-01
    • 2016-08-25
    • 2014-03-11
    • 2016-02-28
    • 2016-05-18
    • 2014-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多