2016-09-21 3 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 здесь? –

+0

Привет @ 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

ng-repeat="user in $data"> Вы можете использовать в вашем HTML, но я не могу найти, где вы определяете $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> 

также обновить 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> 
</table> 
</div> 
</body> 
+0

Спасибо за ответ. Он отлично работает в plunkr. Однако, если я попробую $ defer в моем примере. Он выдает ошибку как «Ошибка: params isdedeined» – rram

+0

Можете ли вы поделиться своим новым кодом здесь? –

+0

Я подозреваю, что в новом nG-таблице getData() нет только $ defer, только getData (params). –

Смежные вопросы