2016-04-28 7 views
0

binden Also versuche ich in Angular, eine ng-Tabelle an ein Dataset zu binden, aber scheint nicht mit meinen Antwortdaten zu arbeiten. Ich denke, mein Problem ist irgendwo hier, "" - self.tableParams = new NgTableParams ({}, {Datensatz: 'Daten'}); - "" bin ich mir aber nicht sicher. Außerdem bekomme ich keine Fehlerkonsole. Kann jemand ein wenig Licht vergießen, danke.Kann nicht an ngTable aus dem Dataset

Controller:

UtilityApp.controller('u_CompaniesController', function ($scope, $http, NgTableParams) { 

$scope.message = "Companies"; 
$scope.myData = []; 
$http({ 
    method: 'GET', 
    url: '/Utility/GetCompanies', 
}).then(function successCallback(response) { 
    var self = this; 
    var data = response.data; 
    self.tableParams = new NgTableParams({}, { dataset: 'data' }); 

}, function errorCallback(response) { 
    alert("error"); 
});  

});

Ng-Table

<div ng-controller="u_CompaniesController"> 
    <table id="tblCompanies" ng-table="vm.tableParams" class="table" show-filter="true"> 
     <tr ng-repeat="c in $tableParams"> 
      <td title="'CompanyCd'" filter="{ CompanyCd: 'text'}" sortable="'CompanyCd'"> 
       {{c.CompanyCd}} 
      </td> 
      <td title="'CompanyName'" filter="{ CompanyName: 'text'}" sortable="'CompanyName'"> 
       {{c.CompanyName}} 
      </td> 
     </tr> 
    </table> 
</div> 

Antwort

0

Versuchen var self = this nach rechts unter der Steuerung Erklärung zu bewegen. Sie sollten auch Ihren HTML-Code durch ng-controller="u_CompaniesController as vm" aktualisieren. Lesen Sie this blogpost Weitere Informationen zu Controller als Syntax.

Oder verwenden Sie einfach $scope, ich würde es empfehlen, wenn Sie gerade mit eckigen beginnen. In diesem Fall wird die vm von Ihrem html

$scope.tableParams = new NgTableParams({}, { dataset: 'data' }); 

-Controller

UtilityApp.controller('u_CompaniesController', function ($scope, $http, NgTableParams) { 

$scope.message = "Companies"; 
$scope.myData = []; 
$http({ 
    method: 'GET', 
    url: '/Utility/GetCompanies', 
}).then(function successCallback(response) { 

    var data = response.data; 
    $scope.tableParams = new NgTableParams({}, { dataset: 'data' }); 

}, function errorCallback(response) { 
    alert("error"); 
});  

HTML

<div ng-controller="u_CompaniesController"> 
    <table id="tblCompanies" ng-table="tableParams" class="table" show-filter="true"> 
     <tr ng-repeat="c in $tableParams"> 
      <td title="'CompanyCd'" filter="{ CompanyCd: 'text'}" sortable="'CompanyCd'"> 
       {{c.CompanyCd}} 
      </td> 
      <td title="'CompanyName'" filter="{ CompanyName: 'text'}" sortable="'CompanyName'"> 
       {{c.CompanyName}} 
      </td> 
     </tr> 
    </table> 
</div> 
+0

Dank ng-table="tableParams" entfernen, die fast gearbeitet, es zeigt die Zeilen, aber sie sind alle leer. – jpavlov

+0

Da Sie die Daten vom Server erhalten, versuchen Sie http://codepen.io/christianacca/pen/VLqqjP?editors=101 –

Verwandte Themen