Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果Json对象元素值是Angular中的Json字符串,如何访问它_Javascript_Angularjs_Json - Fatal编程技术网

Javascript 如果Json对象元素值是Angular中的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.

我将一些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.664",
      "executor":"sam",
      "JobDetails":"{\"environment\":\"AA\",\"EmailRecipients\":[\"sam.sam11@gmail.com\"],\"extraParams\":{\"FileName\":\"myTest.xml\"}}",
      "status":"active",
      "elapsedTime":"18 minutes ago"
   }
]
我已尝试使用angularJs
ng 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