Javascript 如果Json对象元素值是Angular中的Json字符串,如何访问它
我将一些DB表列值持久化为json字符串,然后将DB表值作为json对象发送到前端Javascript 如果Json对象元素值是Angular中的Json字符串,如何访问它,javascript,angularjs,json,Javascript,Angularjs,Json,我将一些DB表列值持久化为json字符串,然后将DB表值作为json对象发送到前端 [ { "jobId":"efe0ace0-8ed9-45ff-9232-974cbdc89b86", "jobType":"TestExecutionJob", "nextRun":"N/A", "lastRun":"2015-11-26 13:26:10.664", "createdDate":"2015-11-26 13:26:10.
[
{
"jobId":"efe0ace0-8ed9-45ff-9232-974cbdc89b86",
"jobType":"TestExecutionJob",
"nextRun":"N/A",
"lastRun":"2015-11-26 13:26:10.664",
"createdDate":"2015-11-26 13:26:10.664",
"executor":"sam",
"JobDetails":"{\"environment\":\"AA\",\"EmailRecipients\":[\"sam.sam11@gmail.com\"],\"extraParams\":{\"FileName\":\"myTest.xml\"}}",
"status":"active",
"elapsedTime":"18 minutes ago"
}
]
我已尝试使用angularJsng repeat
但未显示任何内容。请告诉我如何访问JobDetails
值。(环境、电子邮件收件人和文件名)
- {{t.environment}
Js文件
'use strict';
var tepTableModule = angular.module('test',
[ 'ngAnimate', 'ngTouch','ui.grid','ngResource' ]).factory('Service',
function($resource) {
return $resource('/api/jobs', {});
});
tepTableModule
.controller(
'tepTableCtrl',
function($scope, Service) {
$scope.TestData = Service.query();
var Plantemplate ='<div><ul><li ng-repeat="t in row.entity.JobDetails">{{t.FileName}}</li></ul></div>';
$scope.tableData = {
data : 'TestData',
groupsCollapsedByDefault : true,
enablePinning : true,
columnDefs : [ {
field : 'jobId',
displayName : 'jobId',
visible : false
}, {
field : 'JobDetails',
displayName : 'Plan Name',
cellTemplate : Plantemplate,
visible : true
},
{
field : 'jobType',
displayName : 'JobType',
visible : true
},
{
field : 'environment',
displayName : 'Environments',
visible : true
},
{
field : 'status',
displayName : 'Status',
visible : true
},
{
field : 'elapsedTime',
displayName : 'LastRun',
visible : true
},
{
field : 'JobDetails.EmailRecipients',
displayName : 'Email Recipients',
visible : true
},
{
field : 'executor',
displayName : 'Executor',
visible : true
}
],
sortInfo: {
fields: ['elapsedTime'],
directions: ['desc']
},
plugins : [ new ngGridAutoRowHeightPlugin() ]
};
$scope.changeGroupBy = function(group) {
$scope.gridOptions.groupBy(group);
}
$scope.clearGroupBy = function() {
$scope.gridOptions.$gridScope.configGroups = [];
$scope.gridOptions.groupBy();
}
});
“严格使用”;
var tepTableModule=角度。模块('测试',
['ngAnimate','ngTouch','ui.grid','ngResource'].factory('Service',',
职能(资源){
返回$resource('/api/jobs',{});
});
可折叠模块
.控制员(
“tepTableCtrl”,
功能(范围、服务){
$scope.TestData=Service.query();
var Plantemplate='- {{t.FileName}
;
$scope.tableData={
数据:“TestData”,
groupsCollapsedByDefault:true,
启用钉扎:正确,
columnDefs:[{
字段:“jobId”,
displayName:“作业ID”,
可见:假
}, {
字段:“作业详细信息”,
displayName:'计划名称',
细胞模板:Plantemplate,
可见:正确
},
{
字段:“作业类型”,
displayName:“作业类型”,
可见:正确
},
{
字段:“环境”,
displayName:'环境',
可见:正确
},
{
字段:“状态”,
displayName:“状态”,
可见:正确
},
{
字段:“elapsedTime”,
displayName:'LastRun',
可见:正确
},
{
字段:“JobDetails.EmailRecipients”,
displayName:“电子邮件收件人”,
可见:正确
},
{
字段:“执行者”,
displayName:'执行者',
可见:正确
}
],
索廷福:{
字段:['elapsedTime'],
说明:['desc']
},
插件:[新的ngGridAutoRowHeightPlugin()]
};
$scope.changeGroupBy=函数(组){
$scope.gridOptions.groupBy(组);
}
$scope.clearGroupBy=函数(){
$scope.gridOptions.$gridScope.configGroups=[];
$scope.gridOptions.groupBy();
}
});
HTML
<div ng-controller="tepTableCtrl">
<div ui-grid="tableData" class="grid"></div>
</div>
为什么不分析数据(将数据从字符串转换为对象)
newObj=JSON.parse(yourString)代码>
然后使用ng repeat。为什么不解析数据呢
newObj=JSON.parse(yourString)代码>
然后对其使用ng repeat。首先将字符串解析为对象,然后使用它
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', ['$scope', function($scope) {
$scope.json = [
{
"jobId":"efe0ace0-8ed9-45ff-9232-974cbdc89b86",
"jobType":"TestExecutionJob",
"nextRun":"N/A",
"lastRun":"2015-11-26 13:26:10.664",
"createdDate":"2015-11-26 13:26:10.664",
"executor":"sam",
"JobDetails":"{\"environment\":\"AA\",\"EmailRecipients\":[\"sam.sam11@gmail.com\"],\"extraParams\":{\"FileName\":\"myTest.xml\"}}",
"status":"active",
"elapsedTime":"18 minutes ago"
}
].map(function(value){
value.JobDetailParse = JSON.parse(value.JobDetails);
return value;
})
}]);
</script>
var-app=angular.module('myApp',[]);
app.controller('myCtrl',['$scope',函数($scope){
$scope.json=[
{
“作业ID”:“efe0ace0-8ed9-45ff-9232-974cbdc89b86”,
“作业类型”:“TestExecutionJob”,
“nextRun”:“不适用”,
“lastRun”:“2015-11-26 13:26:10.664”,
“createdDate”:“2015-11-26 13:26:10.664”,
“遗嘱执行人”:“山姆”,
“作业详细信息”:“{\“环境\”:“AA\”,“电子邮件收件人\”:[\”sam。sam11@gmail.com\“],\“extraParams\”:{\“FileName\”:\“myTest.xml\”}},
“状态”:“活动”,
“elapsedTime”:“18分钟前”
}
].map(函数(值){
value.JobDetailParse=JSON.parse(value.JobDetails);
返回值;
})
}]);
Html:
<div ng-repeat = "t in json">
{{t.JobDetailParse.environment}}
</div>
{{t.JobDetailParse.environment}
首先将字符串解析为对象,然后使用它
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', ['$scope', function($scope) {
$scope.json = [
{
"jobId":"efe0ace0-8ed9-45ff-9232-974cbdc89b86",
"jobType":"TestExecutionJob",
"nextRun":"N/A",
"lastRun":"2015-11-26 13:26:10.664",
"createdDate":"2015-11-26 13:26:10.664",
"executor":"sam",
"JobDetails":"{\"environment\":\"AA\",\"EmailRecipients\":[\"sam.sam11@gmail.com\"],\"extraParams\":{\"FileName\":\"myTest.xml\"}}",
"status":"active",
"elapsedTime":"18 minutes ago"
}
].map(function(value){
value.JobDetailParse = JSON.parse(value.JobDetails);
return value;
})
}]);
</script>
var-app=angular.module('myApp',[]);
app.controller('myCtrl',['$scope',函数($scope){
$scope.json=[
{
“作业ID”:“efe0ace0-8ed9-45ff-9232-974cbdc89b86”,
“作业类型”:“TestExecutionJob”,
“nextRun”:“不适用”,
“lastRun”:“2015-11-26 13:26:10.664”,
“createdDate”:“2015-11-26 13:26:10.664”,
“遗嘱执行人”:“山姆”,
“作业详细信息”:“{\“环境\”:“AA\”,“电子邮件收件人\”:[\”sam。sam11@gmail.com\“],\“extraParams\”:{\“FileName\”:\“myTest.xml\”}},
“状态”:“活动”,
“elapsedTime”:“18分钟前”
}
].map(函数(值){
value.JobDetailParse=JSON.parse(value.JobDetails);
返回值;
})
}]);
Html:
<div ng-repeat = "t in json">
{{t.JobDetailParse.environment}}
</div>
{{t.JobDetailParse.environment}
我试过了,但还是一样。我正试图通过REST服务函数($scope,service){$scope.TestData=service.query();data:'TestData',所以现在您正在尝试发送数据?您最初的问题是关于JSON字符串内的映射。您是否尝试解析测试数据?即JSON.parse(TestData)
?我正在使用REST服务将数据提取到网格中。我编辑了我的问题,请看一看。您确定TestData
甚至在范围内吗?测试数据在哪里?它在您的控制器/服务中吗?因为您返回了promi