2015-11-26 4 views
1

Я сохраняю некоторые значения столбцов таблицы DB как строку json, а затем отправляет значения таблицы DB как объект json в передний конец.Как получить доступ к значениям элементов объекта Json, если это строка json в Angular

[ 
    { 
     "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\":[\"[email protected]\"],\"extraParams\":{\"FileName\":\"myTest.xml\"}}", 
     "status":"active", 
     "elapsedTime":"18 minutes ago" 
    } 
] 

Я попытался с angularJs ng-repeat, но ничего display.Please дайте мне знать, как я могу получить доступ к JobDetails значения. (Окружающая среда, EmailRecipients и FileName)

<ul><li ng-repeat="t in row.entity.JobDetails">{{t.environment}}</li></ul> 

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(); 
       } 

      }); 

HTML

<div ng-controller="tepTableCtrl"> 
    <div ui-grid="tableData" class="grid"></div> 
</div> 

ответ

2

Почему бы не разобрать данные, IE включить его из строки в объект?

newObj = JSON.parse(yourString);

Затем используйте нг-повтора на нем.

+0

Я пытался, но до сих пор same.I пытаюсь установить данные в UI-сеть через функцию REST службы ($ scope, Service) { \t \t \t \t $ scope.TestData = Service.query(); данные: 'TestData', – gihan

+0

Итак, теперь вы пытаетесь отправить данные? Ваш первоначальный вопрос касался отображения внутри строки JSON. Вы пытаетесь проанализировать тестовые данные? IE 'JSON.parse (TestData)'? – xeon48

+0

Я собираю данные в сетку, используя REST service.I отредактировал мой вопрос. Пожалуйста, посмотрите. – gihan

3

первой строки синтаксического анализа объекта, а затем использовать его

<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\":[\"[email protected]\"],\"extraParams\":{\"FileName\":\"myTest.xml\"}}", 
      "status":"active", 
      "elapsedTime":"18 minutes ago" 
     } 
     ].map(function(value){ 
     value.JobDetailParse = JSON.parse(value.JobDetails); 
     return value; 
     }) 

    }]); 

</script> 

Html:

<div ng-repeat = "t in json"> 
    {{t.JobDetailParse.environment}} 
    </div> 
+0

если мой ответ правильный, проверьте правильный знак. –

+0

Я отредактировал свой вопрос, пожалуйста, посмотрите. Я беру данные, используя REST.Я новичок для углового, пожалуйста, дайте мне знать, как я могу достичь этого. – gihan

+0

см. Мой ответ, сначала вы преобразуете свое строковое значение в объект, затем вы можете получить к нему доступ. –

Смежные вопросы