0

我正在使用jsonForm从 3 个不同的 json 模式生成一个表单。提交表单时,请求另一个表单,依此类推......所有 3 个表单上的数据创建一个 json 对象,该对象在最后一个表单填写后发送回并存储。

表单按预期工作,问题是使用 ng-repeat更新列表时

HTML:

<ul>
    <li ng-repeat="names in newName">{{names}}</li>
<ul>

默认名称数组:

$scope.newName= ["test1","test2"];

初始对象

var set1 = {
     "setName": "",
     "setAttributes": [],
    "setQuestions": []

};

角度:

        $scope.createNewSet = function () {
            $http.get('/json/schema1.json').success(function(data) {
                $('#form1').jsonForm({ // DISPLAY FIRST FORM
                 schema: data,
                 "form": [
                   "*",
                   {
                     "type": "submit",
                     "title": "Proceed to step 2"
                   }
                 ],
                 onSubmit: function (errors, values) { 
                    var sName = values.setName;
                    set1.setName = sName;
                    $http.get('/json/schema2.json').success(function(data) {
                        $('#form2').jsonForm({ //DISPLAY SECOND FORM
                        schema: data,
                        "form": [
                          "*",
                          {
                            "type": "submit",
                            "title": "Proceed to step 3"
                          }
                        ], 
                        onSubmit: function (errors, values) { // DISPLAY THIRD FORM
                            set1.setAttributes = values.attributes;
                            $http.get('/json/schema3.json').success(function(data) {
                            $('#form3').jsonForm({
                               schema: data,
                               "form": [
                                  "*",
                                 {
                                  "type": "submit",
                                  "title": "Proceed to step 4"
                                  }
                                ],
                                onSubmit: function (errors, values) { // SAVE COMPLETE SET
                                  set1.setQuestions = values.questions;
                                  $scope.newName.push(set1.setName);  //UPDATE li
                                  $scope.newName.push('blah')
                                    console.log($scope.newName);
                                },
                              });
                            });
                          },   

浏览器控制台显示更新的 newName 数组["test1","test2","Simo","blah"]SimoBlahHTML 不显示它们。有什么东西可以阻止 Angular 更新 DOM 吗?

谢谢..

4

1 回答 1

0

尝试重新应用范围:

$scope.$apply(function(){
    $scope.newName.push(set1.setName);  //UPDATE li
    $scope.newName.push('blah')
});
于 2013-09-25T12:27:21.163 回答