AngularJS,添加了2个带有id和ng-model的额外输入文本框,但未提交这些文本框

时间:2017-07-24 06:02:22

标签: javascript angularjs json angularjs-ng-form angularjs-model

我一直在修改一个我多次做过的表格。这次有人我无法弄清楚为什么它没有发送2个额外的字段

控制器

vm.question = {};

现在大部分时间它们都是空白的,但我不记得有空白字段值没有被发送的问题

有效的现有字段

<div class="form-group">
   <label class="col-md-2" for="english">Spanish</label>
   <div class="col-md-10">
     <input type="text" ng-model="vm.question.VerbiageSpanish"
             id="verbiagespanish" name="verbiagespanish"
             class="form-control"
             placeholder="Spanish" />
   </div>
</div>

新字段已添加至ng-model,但未在保存时提交

<div class="form-group">
   <label class="col-md-2" for="english">Parent ID</label>
     <div class="col-md-10">
       <input type="text" ng-model="vm.question.ParentId"
             numbers-only style="width:30px" id="parentid"
             name="parentid" class="form-control" />
     </div>
 </div>
<div class="form-group">
     <label class="col-md-2" for="english">Parent Value</label>
     <div class="col-md-10">
     <input type="text" ng-model="vm.question.ParentValue"
            style="width:220px" id="parentvalue" name="parentvalue" 
            class="form-control"
            placeholder="Parent Value" />
     </div>
</div>

代码示例,注意它有VerbiageSpanish和除了新的ParentId和ParentValue之外的所有其他字段 这怎么可能?

{
  "Active": true,
  "Name": "test",
  "Description": "test",
  "Verbiage": "test",
  "VerbiageSpanish": "test",
  "directive": {
    "1": true
  },
  "data": {
    "1": "yes"
  },
  "SortOrder": {
    "1": "2"
  }
}

根据评论更新:

  1. 如果我填写了ParentId和ParentValue,那么我看到它被发送过来,因为我甚至是console.log并且看到它

  2. 表单提交按钮

     <button type="button" class="btn btn-success" data-dismiss="modal"
             ng-click="vm.saveQuestion(vm.question)">
        Save
     </button>
    
  3. 控制器将所有内容发送到服务,因此当没有任何值时,它显然甚至没有发送到API

    vm.saveQuestion = function (script) {
        var promise = "";
        console.log('savequestion debug', script);
    
  4. 当我将数据输入这些文本框时,我看到了这个

    {
      "Active": true,
      "Name": "test",
          "ParentId" : "22",
          "ParentValue": "afafaf",
      "Description": "test",
      "Verbiage": "test",
      "VerbiageSpanish": "test",
      "directive": {
        "1": true
      },
      "data": {
        "1": "yes"
      },
      "SortOrder": {
        "1": "2"
      }
    }
    

1 个答案:

答案 0 :(得分:0)

我认为要么像控制器一样初始化这些键

vm.question.VerbiageSpanish = "";
vm.question.ParentId = "";
vm.question.ParentValue = "";

或者

在这些字段中使用ng-init=""

<input type="text" ng-model="vm.question.ParentValue"
       style="width:220px" id="parentvalue" name="parentvalue" 
       class="form-control"
       ng-init="" placeholder="Parent Value" />