【问题标题】:The rest Api returns data but it is not showing up on the page其余 Api 返回数据但未显示在页面上
【发布时间】:2017-09-04 12:58:24
【问题描述】:

我正在尝试从我制作的其余 api 中获取数据。 api返回数据但角度无法加载它。我可以看到从开发者工具中的网络选项卡传递的数据。

HTML 代码:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8" />
    <link href="Content/bootstrap.css" rel="stylesheet" />
    <script src="Scripts/angular.js"></script>
    <script src="Scripts/angular-resource.js"></script>
</head>
<body ng-app="productsApp">
    <div ng-controller="productsController">

            <table>
                <tr ng-repeat="p in products">
                    <td>{{p.productName}}</td>
                    <td>{{p.productCode}}</td>
                    <td>{{p.releaseDate | date}}</td>
                    <td>{{p.price | currency}}</td>
                </tr>
            </table>
    </div>
    <script src="Scripts/App.js"></script>
    <script src="Scripts/http.js"></script>
    <script src="Scripts/service.js"></script>
</body>
</html>

Service.js

(function () {
    angular.module("productService", ["ngResource"]).
    factory("product", function ($resource) {
        return $resource('http://localhost:55755/api/products/:id');
    });
}());

App.js

var app = angular.module("productsApp", ["productService"]);

app.controller("productsController", function ($scope, product) {

    $scope.products = product.query();
});

【问题讨论】:

  • 为什么将服务定义为模块 - productService?更重要的是,你为什么不标记正确的答案?我在您的个人资料上看到 9 个问题,但您没有标记一个正确答案。
  • 我不知道如何标记正确的答案。道歉。 @lin

标签: javascript asp.net angularjs asp.net-mvc asp.net-web-api


【解决方案1】:

虽然query() 返回一个承诺,但你可以这样做。只需注入一个回调函数,它会在承诺部分自动执行。

product.query(function (products) {
   $scope.products = products;
});

>> fiddle demo

【讨论】:

  • 你试过console.log(products);输出什么?
  • 做了,它返回了一个json对象数组
  • @ankurchavda 很好,所以它应该适合你。什么不工作?
  • 是的,应该。但是,数据未显示在页面上
  • 我在答案中添加了一个小提琴演示,效果很好。请与您的代码进行比较。
猜你喜欢
  • 2021-06-07
  • 1970-01-01
  • 2015-04-09
  • 1970-01-01
  • 2015-06-04
  • 2016-04-13
  • 1970-01-01
  • 2020-08-06
  • 1970-01-01
相关资源
最近更新 更多