实施ng-table问题

时间:2016-05-22 11:24:17

标签: javascript angularjs request ngtable

我在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;
&#13;
&#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)

0 个答案:

没有答案