我正在研究返回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;
})});