2016-09-21 52 views
0

我试图用服务器数据初始化ng表。但它不会加载表中的数据。ng表与服务器数据

但是我能够看到ajax调用在控制台中是成功的。 Ajax调用后,我看到多个表格行数据没有数据。

任何想法我做错了什么?

<script> 
var tableAp = angular.module('tableApp', ["ngTable"]); 
tableAp.controller('testTable', function($scope, $http, NgTableParams) {  
    $scope.tableParams = new NgTableParams({}, { 
     getData: function(params) { 
      $http.get('http://localhost/data.php') 
       .success(function(data) { 
        console.log(data); 
        params.total(data.inlineCount); 
        return data; 
        //console.log(data); 

       }); 
     } 
    }); 
}); 
</script> 

HTML

<body ng-app="tableApp"> 
<div ng-controller="testTable"> 
<table ng-table="tableParams" class="table" show-filter="true"> 
    <tr ng-repeat="user in $data"> 
     <td> 
      {{user.name}}</td> 
     <td> 
      {{user.age}}</td> 
    </tr> 

</div> 
</body> 
+0

能否请你在这里给返回的JSON数据更新HTML? –

+0

Hi @ Md.Rahman这是具有相同结构的示例数据。 '['name':'name1','age':1},{“name”:“name2”,“age”:2},{“name”:“name3”,“age”:3} ,{ “名称”: “NAME4”, “年龄”:4},{ “名称”: “NAME5”, “年龄”:5},{ “名称”: “name6”, “年龄”:6},{ “name”:“name7”,“age”:7} ,{“name”:“name8”,“age”:8}]'我在控制台 – rram

回答

0

你在你的HTML中使用ng-repeat="user in $data">,但我无法找到你在你的控制器定义$data

此外,您似乎尝试在控制器中注入名为NgTableParams的自定义服务。你不需要“创建一个对象”。这是一个辛格尔顿。

+0

看到我也有这个疑问。但在文档中我也没有看到控制器中的任何数据这是[URL](http://ng-table.com/#/loading/demo-managed-array) – rram

0

你可以试试这个:DEMO LINK HERE

请使用ngTableParams代替NgTableParams。 并更新脚本

<script> 
var tableAp = angular.module('tableApp', ["ngTable"]); 
tableAp.controller('testTable', function($scope, $http, ngTableParams) { 
     $scope.tableParams = new ngTableParams(
      { page: 1,   // show first page 
      count: 10   // count per page 
      }, 
      { 
       getData: function($defer,params) { // --- add $defer 
        $http.get('http://localhost/data.php') 
         .success(function(data) { 
          console.log(data); 
          params.total(data.inlineCount); 
          $defer.resolve(data); // ---- add this 

         }); 
       } 
      }); 
}); 
</script> 

还通过将结束表标记

<body ng-app="tableApp"> 
<div ng-controller="testTable"> 
<table ng-table="tableParams" class="table" show-filter="true"> 
    <tr ng-repeat="user in $data"> 
     <td> 
      {{user.name}}</td> 
     <td> 
      {{user.age}}</td> 
    </tr> 
</table> 
</div> 
</body> 
+0

感谢您的答案。它在plunkr中工作正常。但是,如果我在我的例子中尝试$延期。它会抛出错误,因为'错误:params是未定义的' – rram

+0

你能分享你的新代码吗? –

+0

我怀疑在新的ng-table的getData()中没有更多的$ defer,只有getData(params)。 –