2016-04-28 1 views
0

У меня есть JSON объект вроде этого:AngularJS добавляющий и толкающий в гнездовом JSON объекты

{ 
    "Name": "Shivansh", 
    "RollNo": "1", 
    "Stream": "CSE", 
    "OverallScore": "76", 
    "Semester": [ 
     { 
      "SemesterName": "FY-2012 - 1", 
      "TotalScore": "78.00", 
      "StartDate" : "2012-02-14", 
      "EndDate" : "2012-07-16", 
      "Amount" : "55000", 
      "Subject": [ 
       { 
        "subjectname": "maths", 
        "score": "81" 
       }, 
       { 
        "subjectname": "chemistry", 
        "score": "79" 
       }, 
       { 
        "subjectname": "physics", 
        "score": "77" 
       } 
      ] 
     }, 
     { 
      "SemesterName": "FY-2013-1", 
      "TotalScore": "76.00", 
      "StartDate" : "2013-02-16", 
      "EndDate" : "2014-07-16", 
      "Amount" : "55000", 
      "Subject": [ 
       { 
        "subjectname": "ADA", 
        "score": "80" 
       }, 
       { 
        "subjectname": "Operating System", 
        "score": "77" 
       }, 
       { 
        "subjectname": "Databases", 
        "score": "73" 
       }, 
       { 
        "subjectname": "Economics", 
        "score": "71" 
       } 
      ] 
     }     
    ] 
} 

Теперь я хочу добавить еще одно поля семестра в этот формат JSON с помощью angularJS. Может ли кто-нибудь помочь мне, как достичь этого. Следующее поле, которое я хотел бы добавить, может выглядеть следующим образом:

{ 
        "SemesterName": "FY-2013-2", 
        "TotalScore": "75.00", 
        "StartDate" : "2011-02-16", 
        "EndDate" : "2012-07-16", 
        "Amount" : "55067800", 
        "Subject": [ 
         { 
          "subjectname": "Sets and Probability", 
          "score": "78" 
         }, 
         { 
          "subjectname": "Networking and Security", 
          "score": "76" 
         }, 
         { 
          "subjectname": "Advanced DataBases", 
          "score": "72" 
         }, 
         { 
          "subjectname": "Economics-2", 
          "score": "70" 
         } 
        ] 
       } 

до сих пор я использую этот тип контроллеров, как указано ниже:

$scope.addRowSubject = function() { 
      $scope.insertsub = { 
       //id = $scope.getSubject.length+1; 
       subjectname : '1', 
       score : '1' 
      }; 

      $scope.getSubject.push($scope.insertsub); 
}; 

getSubject список предметов, которые присутствуют в одном семестре поле. Я могу получить этот список без каких-либо проблем.

$scope.addRowSemester = function() { 
      $scope.insertsem = { 
       //id = $scope.getSemester.length+1; 
       StartDate : "1", 
       EndDate : "1", 
       Amount : "1", 
       SemesterName : "1", 
       TotalScore : "1", 
       Subject : "" 
      } 
$scope.getSemester.push($scope.insertsem); 
}; 

getSemester список семестров в Студента.

Я могу нажать поле семестра внутри своего JSON, но поскольку поле Subject null, я не могу нажать поле темы. Надеюсь, вы поняли эту идею. Итак, любые предложения по этому поводу. Заранее спасибо.

+1

Не могли бы вы добавить plunkr? –

ответ

1

Предметные свойства вашего JSONObject это должно быть экземпляром массива, например:

$scope.addRowSemester = function() { 
      $scope.insertsem = { 
       //id = $scope.getSemester.length+1; 
       StartDate : "1", 
       EndDate : "1", 
       Amount : "1", 
       SemesterName : "1", 
       TotalScore : "1", 
       Subject : [] 
      }