Ionic $ http(匹配id从一个Rest响应到另一个)

时间:2017-05-16 14:13:19

标签: angularjs rest http ionic-framework

我正在研究返回REST响应的离子移动应用程序。我在Spring中创建了REST Web服务。在我的所有作业(TAB)视图中,我(ion-list)填写了一些REST响应。 示例:Image: All Jobs List

示例:

这是在作业标签(getAllJobsRest)中调用的休息响应:

  

getAllJobsRest

  {
    "id": 232,
    "jobId": 119,
    "jobName": "iProducts",
    "jobLevel": 3,
    "jobLevelName": "ERROR",
    "jobMessage": "message",
    "jobEventCtime": 1493972832273,
    "jobErrorStatus": 1,
    "jobComment": null,
    "jobSolvedBy": null,
    "jobEventMtime": null
    },
    {
    "id": 13477371,
    "jobId": 15,
    "jobName": "eGoogle",
    "jobLevel": 1,
    "jobLevelName": "INFO",
    "jobMessage": "End job",
    "jobEventCtime": 1458925361763,
    "jobErrorStatus": 1,
    "jobComment": "processed",
    "jobSolvedBy": "ttester",
    "jobEventMtime": null
    },
  

getJobHistoryREST

{
"id": 13714685,
"jobId": 119,
"jobName": "iProducts",
"jobLevel": 1,
"jobLevelName": "INFO",
"jobMessage": null,
"jobEventCtime": 1483149631910,
"jobErrorStatus": 4,
"jobComment": null,
"jobSolvedBy": null,
"jobEventMtime": 1483149631910
},
{
"id": 13714684,
"jobId": 119,
"jobName": "iProducts",
"jobLevel": 1,
"jobLevelName": "INFO",
"jobMessage": null,
"jobEventCtime": 1483149631197,
"jobErrorStatus": 4,
"jobComment": null,
"jobSolvedBy": null,
"jobEventMtime": 1483149631197
}

现在一切正常......问题是当我点击离子列表中的某个项目时我想再次显示 getJobHistoryREST 填充的离子列表,但只有匹配的作业来自 getAllJobsRest jobId 的jobId 。 我不知道如何将第一个Rest响应中的 jobId 与第二个Rest响应相匹配。 我已尝试使用JobDetailCtrl'中的一些功能。 - >

TCCService.getJobById($scope.jobId).success(function (response) {
      $scope.jobIdList = response;
    })});

但返回空Object。 我将我的代码放在这里,所以我希望任何愿意帮助的人都会给我一个正确的答案。感谢。

  

这是我的app.js文件:

    var app = angular.module('tcc', [
  'ionic',
  'tcc.controllers',
  'tcc.service',
  'tcc.directive',
  'restangular'
]);

app.config(function($stateProvider, $urlRouterProvider) {

  $stateProvider.state('tab', {
    url: '/tab',
    abstract: true,
    templateUrl: 'templates/tabs.html'
  });

  $stateProvider.state('tab.jobs', {
    url: '/jobs',
    views: {
      'tab-jobs': {
        templateUrl: 'templates/tab-jobs.html',
        controller: 'JobCtrl'
      }
    }
  });

  $stateProvider.state('tab.job-detail', {
    url: '/jobs/:jobId',
    views: {
      'tab-jobs': {
        templateUrl: 'templates/detail/job.html',
        controller: 'JobDetailCtrl'
      }
    }
  });
  

tccservice.js

angular.module('tcc.service', [])

  .factory('TCCService', function($http) {


    var jobs ="https://ce35285c.ngrok.io/tcc/v1/jobStatus/getLastJobStatusForAllJobs";    
    var jobStatusHistory = "https://ce35285c.ngrok.io/tcc/v1/jobStatus/getJobStatusHistory";
    var components=[];

  return {

    getComponents: function() {
      return $http.get(url);
    },

    getJobs: function() {
      return $http.get(jobs);
    },

    getJobById: function(jobId) {
      return $http.get(jobStatusHistory, {params: {
        componentId: jobId
      }});
    }
  

controllers.js

  //Job Controller
  app.controller('JobCtrl', function($scope, TCCService) {

    //  v1/jobStatus/getLastJobStatusForAllJobs
    TCCService.getJobs().success(function (response) {
      $scope.jobs = response;
      $scope.jobId = response.jobId;
    });

    $scope.remove = function(jobId) {
      TCCService.removeJob(jobId);
    }
  });
 // Job Details Controller
 app.controller('JobDetailCtrl', function($scope, TCCService) {
    var job = $scope.jobId;

    TCCService.getJobs().success(function (response) {
      $scope.jobs = response;
    });

    TCCService.getJobById(job).success(function (response) {
      $scope.jobIdList = response;
    })});

0 个答案:

没有答案