GetData işlevime geçirilmesi gereken parametrelerin tanımsız olduğu ng-table kullanarak bir sorunla karşılaşıyorum. AngularJS ve ng-masasında yeniyim, bu yüzden herhangi bir yardım takdir edilecektir. Aşağıdaki kodda REST'in doğrudan onları çağırarak çalıştığını doğruladım, bu yüzden sorun açısal kodum/konfigürasyonumda bir yer. Her neyse, işte benim denetleyicimin sözde bir örneğidir. Gerçek kod bir intranet üzerindedir, bu yüzden doğrudan yapıştıramıyorum, bu yüzden herhangi bir yazım hatalarını transkripsiyondan affedin. Kullanılması ng-tablo 1.0.0 ve açısal 1.5.8: Ben getData http çağrısından önce console.log ifadeleri eklediktenng-tablosunun getData işlevinde undefined get12
<table ng-table="tableParams" class="table table-condensed table-striped">
<tr ng-repeat="row in data">
// row stuff here
</tr>
</table>
: Burada
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);
});
}
});
}]);
Ve html ilgili parçasıdır ve paramler tanımsız olarak yazdırılıyor.
Sana 'senin' $ defer' değişkeni console.log' varsa, nesneyi göreceksiniz şüpheli sen Paramların beklemesini bekliyorlardı. –
Ayrıca, 'http.başarı [kullanım dışı] (https://docs.angularjs.org/api/ng/service/$http#deprecation-notice). Bunun yerine 'sonra (işlev (yanıt), işlev (rejectionReason))' kullanın. –
$ defer, ihtiyacım olan değerlere sahip. Sanırım bu JS newbie'den gelen soru "neden?" Ama şimdi ileri gidebilirim. Çok teşekkürler. –