Występuje problem przy użyciu tabeli ng, w której parametry, które powinny zostać przekazane do funkcji getData, są niezdefiniowane. Jestem nowy w AngularJS i ng-table, więc każda pomoc będzie doceniona. Sprawdziłem, że wywołania REST w poniższym kodzie działają poprzez bezpośrednie wywoływanie ich, więc problem jest gdzieś w moim kanciastym kodzie/konfiguracji.Parametry niezdefiniowane w funkcji getData tabeli ng-tabeli
Tak czy inaczej, oto pseudo przykład mojego kontrolera. Rzeczywisty kod znajduje się w intranecie, więc nie mogę go bezpośrednio wkleić, więc wybacz wszystkie literówki z transkrypcji. Korzystanie ng-tabela 1.0.0 i 1.5.8 kątowa:
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);
});
}
});
}]);
I tu jest odpowiedni fragment kodu HTML:
<table ng-table="tableParams" class="table table-condensed table-striped">
<tr ng-repeat="row in data">
// row stuff here
</tr>
</table>
mam wstawiony console.log oświadczenia przed wywołaniem http getData, a parametry drukują jako nieokreślone.
Podejrzewam jeśli '' console.log' swoją zmienną defer' $ zobaczysz obiekt, który oczekiwali, że "params" się utrzymają. –
Ponadto, '$ http.success' jest [przestarzałe] (https://docs.angularjs.org/api/ng/service/$http#deprecation-notice). Zamiast tego użyj 'then (function (response), function (rejectionReason)). –
Odliczanie $ ma wartości, których potrzebuję. Domyślam się, że pytanie od nowicjusza JS brzmi "dlaczego?" Ale mogę teraz iść do przodu. Wielkie dzięki. –