如何在一个表中显示不同的API数据

时间:2017-08-02 07:50:33

标签: angularjs

我有一个表格,我在其中显示来自两个不同API的数据: -

<label>USER CODE:</label>
  <input type="text" ng-model="a.code"/>  

<button type="button" ng-click="getData(a.code)">Show</button>

<table>
  <thead>
      <tr>
         <th>Staff/Customer Code</th>
      </tr>
  </thead>
  <tbody>
      <tr ng-repeat="row in allUsers track by $index" >
         <td>{{row}}</td>
      </tr>
  </tbody>
</table>

scope.getData = function (code) {
      ApiServices.getStaff(code).then(function (response) {
            scope.assignedStaff = response.data;
            scope.allUsers = scope.assignedStaff;
      });
      ApiServices.getCustomers(code).then(function (response) {
            scope.assignedCustomers = response.data;
            scope.allUsers = scope.assignedCustomers;
      });
};

我正在做的是当我输入任何员工代码并按下显示按钮getStaff api被调用时,当我输入客户代码并按下显示按钮getCustomers时,会调用api。因为,响应是一个数组,我在表格中用ng-repeat显示它。对于getStaff我得到null数组作为其后的调用getCustomers将返回null。但它适用于getCustomers。我该怎么办才能getCustomersgetStaff之后不会打电话,因此无法显示空数组。

2 个答案:

答案 0 :(得分:1)

为什么不使用var table = groupByData.ToDataTable(); // using your extension method // snippet for creating schema from table using (var fs = new StreamWriter(xmlFile)) // XML File Path { table.WriteXml(fs, XmlWriteMode.WriteSchema); }

var table = groupByData.ToDataTable(); // using your extension method report.SetDataSource(table); viewer.ReportSource = report; 中合并数组?
ng-repeat

答案 1 :(得分:0)

根据我的理解,您有一些分类来确定哪个是func(),哪个是Staff code,如

Customer code

因此,在Staff Code : STAFXXXXXX Customer Code : CUSTXXXXXX 函数内部,您可以检查在点击getData时传递的代码的索引,并根据您可以调用特定API的分类字符(show)。 / p>

<强>样本

Like : STAF & CUST
var myApp = angular.module('myApp',[]);

myApp.controller('MyCtrl', function($scope) {
    $scope.getData = function(code) {
      if (code.indexOf('STAF') != '-1') {
        console.log("Staff API call");
      } else if (code.indexOf('CUST') != '-1') {
        console.log("Customer API call");
      } else {
        console.log("No API call");
      }
    };
});