Je rencontre un problème lors de l'utilisation de ng-table où les paramètres devant être transmis à ma fonction getData sont indéfinis. Je suis un nouveau à AngularJS et ng-table, donc toute aide serait appréciée. J'ai vérifié que les appels REST dans le code ci-dessous travail en les invoquant directement, de sorte que le problème est quelque part dans mon code/configuration angulaire.Params non défini dans la fonction getData de ng-table
De toute façon, voici un pseudo-exemple de mon contrôleur. Le code réel est sur un intranet, donc je ne peux pas le coller directement, alors pardonnez les fautes de frappe de la transcription. L'utilisation ng table et 1.5.8 angulaire 1.0.0:
myApp.controller('myCtrl', ['$scope', '$http', 'NgTableParams',
function($scope, $http, NgTableParams) {
$http.get('services/data/count').success(function(data) {
// this works fine
$scope.totalRows = data.rowCount;
});
$scope.tableParams = new NgTableParams({
page: 1
count: 20
}, {
total: $scope.totalRows,
getData: function($defer, params) {
// this line fails with params being undefined
$http.get('/services/data/' + params.page() + '/' + params.count()) {
.success(function(data) {
$scope.data = data;
$defer.resolve(data);
});
}
});
}]);
Et voici la pièce pertinente html:
<table ng-table="tableParams" class="table table-condensed table-striped">
<tr ng-repeat="row in data">
// row stuff here
</tr>
</table>
J'ai inséré des déclarations CONSOLE.LOG avant l'appel http getData, et params imprime comme indéfini.
Je soupçonne que si vous '' console.log' votre variable $ defer', vous verrez l'objet s'attendaient à ce que les «params» tiennent. –
Aussi, '$ http.Le succès est [obsolète] (https://docs.angularjs.org/api/ng/service/$http#deprecation-notice). Utilisez 'then (fonction (response), function (rejectectionReason))' à la place. –
Le $ defer a les valeurs dont j'ai besoin. Je suppose que la question de ce débutant JS est "pourquoi?" Mais je peux aller de l'avant maintenant. Merci beaucoup. –