我想在我的demo.i am中发送api调用controller.js给demo.js演示用户列表,我用于带有web api的angularjs数据表。我的结构是app.js,controller.js, service.js使用了这个3个单独的文件。 然后我想发送呼叫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 :(得分: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
方法的更多详细信息。