【问题标题】:No data over jsonjson 上没有数据
【发布时间】:2014-02-17 13:02:36
【问题描述】:

我正在使用 angularjs 1.2.8grails 2.3.4 后端。我在 grails Resources 标签上提供了一个 Restful Api。

如果我加载数据,我有一个看法:

<div class="container main-frame" ng-app="testapp"
    ng-controller="searchController" ng-init="init()">
    <h1 class="page-header">Products</h1>
    <table class="table">
        <thead>
            <tr>
                <th width="25px">ID</th>
                <th>TITLE</th>
                <th>PRICE</th>
                <th>Description</th>
                <th width="50px"></th>
            </tr>
        </thead>
        <tbody>
            <tr ng-repeat="p in product by $id">
                <td>{{p.id}}</td>
                <td>{{p.title}}</td>
                <td>{{p.price}}</td>
                <td>{{p.description}}</td>
                <!-- ng-show="user.id &&user.id==e.user_id" -->
            </tr>
        </tbody>
    </table>
    <!-- ng-show="user.username" -->
    <p>
</div>

我正在使用searchController 加载数据:

testapp.controller("searchController", function($scope, $rootScope, $http, $location) {
  var load = function() {
    console.log('call load()...');

    var url = 'products.json';

    if ($rootScope && $rootScope.appUrl) {
      url = $rootScope.appUrl + '/' + url;
    }

    $http.get(url)
      .success(function(data, status, headers, config) {
        $scope.product = data;
        angular.copy($scope.product, $scope.copy);
      });
  }

  load();
});

但是在我的 postgresql 数据库中有可用的数据,但我只得到:

完全没有期望:

有什么建议我可以做些什么来检查吗?

PS.:控制器已加载!

更新

使用

<tr ng-repeat="p in product track by p.id">

我收到一个错误:

Error: [ngRepeat:dupes] http://errors.angularjs.org/1.2.8/ngRepeat/dupes?p0=p%20in%20product%20track%20by%20p.id&p1=undefined
    at Error (native)
    at https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.min.js:6:449
    at https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.min.js:184:445
    at Object.fn (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.min.js:99:371)
    at h.$digest (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.min.js:100:299)
    at h.$apply (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.min.js:103:100)
    at f (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.min.js:67:98)
    at E (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.min.js:71:85)
    at XMLHttpRequest.v.onreadystatechange (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.min.js:72:133) angular.js:9413

更新2

json 表示形式如下:

[{"class":"com.testapp.Product.BasicProduct","id":1,"dateCreated":"2014-02-17T13:43:13Z","description":"blblblblbalablablalbalbablablablablblabalalbllba","lastUpdated":"2014-02-17T13:43:13Z","price":5.0,"title":"Product1"},{"class":"com.testapp.Product.BasicProduct","id":2,"dateCreated":"2014-02-17T13:43:13Z","description":"blblblblbalablablalbalbablablablablblabalalbllba","lastUpdated":"2014-02-17T13:43:13Z","price":75.0,"title":"Product2"},{"class":"com.testapp.Product.BasicProduct","id":3,"dateCreated":"2014-02-17T13:43:13Z","description":"blblblblbalablablalbalbablablablablblabalalbllba","lastUpdated":"2014-02-17T13:43:13Z","price":50.0,"title":"Product3"},{"class":"com.testapp.Product.BasicProduct","id":4,"dateCreated":"2014-02-17T13:43:13Z","description":"blblblblbalablablalbalbablablablablblabalalbllba","lastUpdated":"2014-02-17T13:43:13Z","price":25.0,"title":"Product4"},{"class":"com.testapp.Product.BasicProduct","id":5,"dateCreated":"2014-02-17T13:43:13Z","description":"blblblblbalablablalbalbablablablablblabalalbllba","lastUpdated":"2014-02-17T13:43:13Z","price":15.0,"title":"Product5"}]

【问题讨论】:

  • 你能用 JSON 表示你的数据(产品)吗?我虽然那个 id 是一个唯一的键
  • @IlanFrumer 请看我的更新!
  • 检查您的数据以查看是否有未定义的 id -> 这就是 dupes 错误的含义。
  • @IlanFrumer 谢谢你的回答!问题是我已经粘贴了数据库中当前可用的所有数据...
  • 看这个例子:plnkr.co/edit/3IXThMzP1iOe7eZI1oUc?p=preview。您提供的相同数据工作正常。可能你的服务器返回一个包装好的数据,请在成功回调中console.log(data)

标签: javascript json angularjs grails


【解决方案1】:

修复ngRepeat 语法:

<tr ng-repeat="p in product track by p.id">

【讨论】:

  • 好的,感谢您的帮助和支持。我在睡了一晚后发现了​​这个错误。是 json url 中的简单 s ;(
猜你喜欢
  • 2015-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-04
  • 2014-03-21
相关资源
最近更新 更多