Sometimes, your DataTable options/columns/columnDefs are stored or computed server side.
All you need to do is to return the expected result as a promise.
angular.module('datatablesSampleApp')
.controller('loadOptionsWithPromiseCtrl', function ($q, $scope, $resource) {
$scope.dtOptions = $resource('/angular-datatables/dtOptions.json').get().$promise;
$scope.dtColumns = $resource('/angular-datatables/dtColumns.json').query().$promise;
});
dtOptions.json
{
"ajax": "/angular-datatables/data.json",
"dom": "pitrfl",
"pagingType": "full_numbers"
}
dtColumns.json
[{
"data": "id",
"title": "ID"
}, {
"data": "firstName",
"title": "First name"
}, {
"data": "lastName",
"title": "Last name",
"visible": false
}]