2017-03-09 49 views
0

我想发送API调用controller.js到service.js在我的demo.i显示用户列表中的演示,我用于angularjs数据表与web api.and我的结构是app.js,controller.js,服务.js使用这3个单独的文件。 然后我想发送电话service.js。如何使用angular.js web api将api call controller.js发送到service.js?

这是我简单的controller.js代码,运行良好。

app.controller('userscontroller', ['$scope', '$http', 'DTOptionsBuilder', 'DTColumnBuilder', 'userservice', 
function ($scope, $http, DTOptionsBuilder, DTColumnBuilder, userservice) { 

    $scope.dtColumns = [ 
     DTColumnBuilder.newColumn("fullName", "Full Name").withOption('name', 'firstname'),    
     DTColumnBuilder.newColumn("email", "Email").withOption('name', 'email'),    
    ] 

    $scope.dtoptions = dtoptionsbuilder.newoptions().withoption('ajax', { 
     datasrc: "data", 
     url: "/home/getuserlist",    
     type: "post", 
     data: { 'type': "time"},    
    }) 
    .withoption('processing', true) 
    .withoption('serverside', true) 
    .withpaginationtype('full_numbers') 
    .withdisplaylength(10) 
    .withoption('aasorting', [0, 'asc'])  

}]) 

这个我service.js文件:

app.service('userservice', function ($http) {}); 

任何一个有想法如何调用使用service.js那么请让我知道这个API调用。

回答

0

根据您的意见,你可以做这样的:

您的用户服务:

app.service('userservice', ['$http', '$q', function ($http, $q) { 

    function getuserlist(data){ 
    var defer = $q.defer(); 
    $http.post('/home/getuserlist', data) 
    .then(function(result){ 
     defer.resolve(result.data); 
    }); 
    return defer.promise; 
    } 

    return { 
    getUsers: getuserlist 
    }; 
}]); 

然后,在你的控制器,你可以利用fromFnPromise功能,这样的事情:

vm.dtOptions = DTOptionsBuilder.fromFnPromise(function() { 
     return userservice.getUsers(data); 
    }) 
    //rest of your options 

您可以在此link找到更多关于fromFnPromise方法的信息。

+0

如何管理“$ scope.dtoptions = dtoptionsbuilder.newoptions()。withoption(”在你的代码中的这个代码请让我知道,实际上这个用于获取用户的列表 – coderwill

+0

因此,你想使用'dtoptionsbuilder'而不是简单的'$ http'? – eminlala

+0

可能是的我不知道如何使用这个API调用是你详细解释所以它的面糊我 – coderwill

相关问题