我在ng-table
项目中实施angularJs
时遇到问题。
这是我的Javascript(其中包含ng-table
请求):
module.run(['navigationMenuService', function (navigationMenuService) {
navigationMenuService.addMenuItem({
name: "ePayment",
link: "epayment",
iconClass: "fa fa-money"
})
}]);
module.controller('ePaymentrController', ['$scope', '$state', 'resourcesService', 'toastsService', '$filter', 'matfinReportsConfig', 'authService','ngTableParams','NameService',
function ($scope, $state, resourcesService, toastsService, $filter, matfinReportsConfig, authService,ngTableParams,NameService) {
var data = NameService.data;
}]);
module.service("NameService", function($http, $filter){
function filterData(data, filter){
return $filter('filter')(data, filter)
}
function orderData(data, params){
return params.sorting() ? $filter('orderBy')(data, params.orderBy()) : filteredData;
}
function sliceData(data, params){
return data.slice((params.page() - 1) * params.count(), params.page() * params.count())
}
function transformData(data,filter,params){
return sliceData( orderData( filterData(data,filter), params ), params);
}
var service = {
cachedData:[],
getData:function($defer, params, filter){
if(service.cachedData.length>0){
console.log("using cached data")
var filteredData = filterData(service.cachedData,filter);
var transformedData = sliceData(orderData(filteredData,params),params);
params.total(filteredData.length)
$defer.resolve(transformedData);
}
else{
console.log("fetching data")
$http.get("http://99.111.111.111/server/api/reports/ePaymentSpecifications/organization/a255f922-6a4b-11e4-a7ff-53ee038745a3/fromAccount/62386806-fb07-4821-a83b-eab0cc987778/toAccount/62386806-fb07-4821-a83b-eab0cc987778?dateTo=31%2F01%2F2015").success(function(resp)
{
angular.copy(resp,service.cachedData)
params.total(resp.length)
var filteredData = $filter('filter')(resp, filter);
var transformedData = transformData(resp,params)
$defer.resolve(resp);
console.log('rest', resp)
});
}
}
};
return service;
});
return module;
});

<div ng-controller="ePaymentrController">
<accordion >
<accordion-group is-open="true" class="report-types-container row" >
<accordion-heading>
some text here, on the left side of the header
<div class="pull-right">
<span>1st info</span>
<span>2nd info</span>
<span>maybe 3rd?</span>
</div>
</accordion-heading>
<div class="panel-body" tabbable-container>
<div class="col-md-6">
<section custom-drop-down input-label="Organization"
input-model="parametersModels.organization"
input-name="organization"
resource="organizationsFiltered" field="Name" input-required="true"></section>
<section custom-auto-complete input-label="From account" resource="mapperAccounts"
input-model="parametersModels.fromAcrrount"
input-name="fromAccountId" input-fields="Name"
input-required="true">
</section>
<section custom-auto-complete input-label="To account" resource="mapperAccounts"
input-model="parametersModels.toAccounts"
input-name="toAccountsId" input-fields="Name"
input-required="true">
</section>
<section custom-date input-model="parametersModels.dateTo" input-name="dateTo"
input-label="Date to"></section>
</div>
<div class="col-md-6">
<section custom-drop-down input-model="parametersModels.AccountType"
input-name="AccountType" set-item-as-default="false"
input-label="Account Type" resource="AccountTypes" field="Name"></section>
<section custom-drop-down input-model="parametersModels.propertyType"
input-name="propertyTypeId" set-item-as-default="false"
input-label="Property Type" resource="propertyTypes" field="Name"
input-filters="{propertyTypeId: '2eefb821-46cc-443e-919c-cd40d8b81c1f'}"></section>
<section custom-drop-down input-model="parametersModels.ActivityTypeId"
input-name="ActivityTypeId" set-item-as-default="false"
input-label="Activity Type" resource="ActivityTypes" field="Name"
input-filters="{ActivityTypes: 'f0c2440c-d85f-4e02-9e80-3d322a76b3ad'}"></section>
</div>
</div>
<div class="footer">
<button class="btn btn-default" type="submit" ng-click="getData()">
Get invoices
</button>
</div>
</accordion-group>
</accordion>
<table ng-table="tableParams" class="table">
<tr ng-repeat="items in resp">
<td data-title="'Name od supplier'" sortable="'SupplierName'">
{{items.SupplierName}}
</td>
<td data-title="'Invoice to Date'" sortable="'InvoiceDate'">
{{items.InvoiceDate}}
</td>
<td data-title="'Invoice Number'" sortable="'InvoiceNumber'">
{{items.InvoiceNumber}}
</td>
<td data-title="'Inventory'" sortable="'Inventory'">
{{items.Inventory}}
</td>
<td data-title="'Value Date'" sortable="'valueDate'">
{{items.valueDate}}
</td>
</tr>
</table>
</div>
&#13;
在其他网格和表上,我使用以下请求,其中我将链接定义为api的地址,然后我在$ scope结构中定义其他参数。
我想收到如下var addresToServer = http:adresToServer/reports/;
的请求,然后将所需的参数定义为:
var requiredParams = {}
requiredParams.organization = $scope.parametersModels.organization ( input defined in the Html showed above)
requiredParams.fromAccount = $scope.parametersModels.fromAccount.Id
requiredParams.toAccount = $scope.parametersModels.toAccount.Id
**and optionalParameters as :**
var OptionalParams = {}
OptionalParams .AccountType = $scope.parametersModels.accountType;
OptionalParams .propertyTypeId = $scope.parametersModels.propertyTypeId;
OptionalParams .ActivityTypeId = $scope.parametersModels.ActivityTypeId;
OptionalParams .dateTo = $filter('date')(new Date($scope.parametersModels.dateTo), 'dd/MM/yyyy')
最后的要求是:getData('addresToServer ',requiredPrams, optionalPrameters)