2015-03-18 27 views
0

我是一個angularjs項目的新手,我遇到的一件事是使用角度數據表來顯示和填充項目表的功能。我試圖檢索數據使用ajax調用一個PHP文件(它使用API​​調用來檢索它)。基於研究,我能夠研究服務器端處理。AngularJS,datatables和ajax調用到php

這裏是old_app.js片斷:

.controller('BasicDatatableCtrl', function ($scope, DTOptionsBuilder, DTColumnBuilder, DTInstances, $resource) { 

var vm = this; 
vm.message = ''; 

function rowCallback(nRow, aData, iDisplayIndex, iDisplayIndexFull) { 
    // Unbind first in order to avoid any duplicate handler (see https://github.com/l-lin/angular-datatables/issues/87) 
    angular.element('td', nRow).unbind('click'); 
    angular.element('td', nRow).bind('click', function() { 
    $scope.$apply(function() { 
     vm.someClickHandler(aData); 
    }); 
    angular.element('.row_selected').removeClass('row_selected'); 
    angular.element(nRow).addClass('row_selected'); 
    }); 
    return nRow; 
} 

vm.dtOptions = DTOptionsBuilder.newOptions() 

     .withOption('ajax', { 
     url: './ajax/ajax_data.php', 
     type: 'POST' 
    }) 
    .withDataProp('') 
    .withOption('processing', true) 
    .withOption('serverSide', true) 
    .withPaginationType('full_numbers'); 

vm.dtColumns = [ 
    DTColumnBuilder.newColumn('id').withTitle('ID'), 
]; 

DTInstances.getLast().then(function (dtInstance) { 
     vm.dtInstance = dtInstance; 
    }); 

    vm.reload = function(event, loadedDT) { 
     vm.dtInstance.reloadData(); 
    }; 

function someClickHandler(info) { 
    vm.message = info.verticals + ' - ' + info.SoldPer; 
} 

vm.someClickHandler = someClickHandler; 

}) 

這裏是ajax_data.php內容:

<?php 
echo "[{ 
"id": 860, 
"firstName": "Superman", 
"lastName": "Yoda" 
}, { 
"id": 382, 
"firstName": "Someone First Name", 
"lastName": "Bar" 
}]"; 
?> 

的問題是我沒有得到任何結果的。 我試圖解決這個鏈接,但我無法得到它的工作:Angular-DataTables custom filter

回答

0

有一件事是肯定的:

在你的PHP文件來改變周圍的封閉引號整個JSON來單引號。那裏有什麼會導致語法錯誤,所以頁面不會返回任何內容。那至少是部分原因。

+0

Omg!就是這樣,非常感謝你。我想我沒有意識到裏面的數組是使用雙引號,所以我把整個東西都用雙引號括起來了。 – Arrivedacci 2015-03-20 16:13:48