【问题标题】:Angularjs add a Child Object to Json ObjectAngularjs 将子对象添加到 Json 对象
【发布时间】:2017-10-27 10:45:51
【问题描述】:

当我尝试将孩子添加到 Json 对象时 我遇到了一个问题:

TypeError: ctrl.otsact.tests.push 不是函数

脚本:

function addOTSACT() {
        var data = {
            'date': '',
            'subjects': angular.copy(ctrl.otsactSubjectsCopy)
        }
        $('.dateField').datepicker({
        changeMonth: true,
        changeYear: true
        });
        ctrl.otsact.tests.push({});
    }

Json 对象:

{  
   "ACT":{  
      "name":"ACT",
      "tests":{  
         "73":{  
            "id":73,
            "official_test_id":1,
            "student_id":165888,
            "test_date":"2017-05-12",
            "score":"0.0",
            "created_at":"2017-05-23 13:50:40",
            "created_by_id":2766,
            "updated_at":"2017-05-23 13:50:40",
            "updated_by_id":2766,
            "subjects":[  
               {  
                  "id":1,
                  "official_test_id":1,
                  "student_id":165888,
                  "official_test_subject_id":1,
                  "score":1,
                  "student_score_id":73,
                  "name":"English",
                  "is_consider":1
               },
               {  
                  "id":2,
                  "official_test_id":1,
                  "student_id":165888,
                  "official_test_subject_id":2,
                  "score":1,
                  "student_score_id":73,
                  "name":"Math",
                  "is_consider":1
               },
               {  
                  "id":3,
                  "official_test_id":1,
                  "student_id":165888,
                  "official_test_subject_id":3,
                  "score":1,
                  "student_score_id":73,
                  "name":"Reading",
                  "is_consider":1
               },
               {  
                  "id":4,
                  "official_test_id":1,
                  "student_id":165888,
                  "official_test_subject_id":4,
                  "score":1,
                  "student_score_id":73,
                  "name":"Science",
                  "is_consider":1
               },
               {  
                  "id":5,
                  "official_test_id":1,
                  "student_id":165888,
                  "official_test_subject_id":5,
                  "score":1,
                  "student_score_id":73,
                  "name":"Writing",
                  "is_consider":0
               }
            ]
         },
         "74":{  
            "id":74,
            "official_test_id":1,
            "student_id":165888,
            "test_date":"2017-05-12",
            "score":"0.0",
            "created_at":"2017-05-23 13:50:40",
            "created_by_id":2766,
            "updated_at":"2017-05-23 13:50:40",
            "updated_by_id":2766,
            "subjects":[  
               {  
                  "id":1,
                  "official_test_id":1,
                  "student_id":165888,
                  "official_test_subject_id":1,
                  "score":2,
                  "student_score_id":74,
                  "name":"English",
                  "is_consider":1
               },
               {  
                  "id":2,
                  "official_test_id":1,
                  "student_id":165888,
                  "official_test_subject_id":2,
                  "score":2,
                  "student_score_id":74,
                  "name":"Math",
                  "is_consider":1
               },
               {  
                  "id":3,
                  "official_test_id":1,
                  "student_id":165888,
                  "official_test_subject_id":3,
                  "score":2,
                  "student_score_id":74,
                  "name":"Reading",
                  "is_consider":1
               },
               {  
                  "id":4,
                  "official_test_id":1,
                  "student_id":165888,
                  "official_test_subject_id":4,
                  "score":2,
                  "student_score_id":74,
                  "name":"Science",
                  "is_consider":1
               },
               {  
                  "id":5,
                  "official_test_id":1,
                  "student_id":165888,
                  "official_test_subject_id":5,
                  "score":2,
                  "student_score_id":74,
                  "name":"Writing",
                  "is_consider":0
               }
            ]
         }
      }
   }
}

我想添加 75 个孩子来测试孩子

【问题讨论】:

    标签: javascript angularjs json addchild


    【解决方案1】:

    在您的 JSON 测试中,不是数组而是对象,您不能推送到对象。所以这一行是错误的:

    ctrl.otsact.tests.push({});
    

    您必须将其更改为:

    ctrl.otsact.tests[MYNEWID] = MYNEWOBJECT;
    

    【讨论】:

    • 然后。删除对象我遇到了类似的问题。 Question
    • 在问题中回答了,让我知道它是否有效
    【解决方案2】:

    您的tests 属性是...object,而不是array。测试应该是tests: [],而不是tests: {}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-12
      • 2015-07-20
      • 1970-01-01
      • 1970-01-01
      • 2015-09-21
      • 2018-05-18
      • 1970-01-01
      相关资源
      最近更新 更多