如何在AngularJS中保存动态表的所有行?

时间:2018-02-15 05:22:17

标签: javascript html angularjs

我正在尝试为我的数据库中的String数组类型之一动态添加动态行。但它只保存行中输入的最后一个值,而不是将所有值保存在数组中。以下是我的观看代码:

<div class="row" ng-class='{red:true}'>
  <label for="remedy">Remedy</label>
</div>

<input name="remedy" id="remedy" ng-model="error.remedy" required>


<br/>
<div class="row" ng-class='{red:true}'>
  <a href="#!/errorcreate"  class="btn btn-primary btn-small" ng-click="addRemedyRow()" ng-class='{red:true}'>Add Row</a></div>
<br/>

<table style="width:100%">
  <thead>
  <tr>
  <th ng-class='{red:true}'>Remedy</th>

</tr>
</thead>
<tbody>
<tr ng-repeat="rowContent in remedyrows">
  <td>{{rowContent.remedy}}</td>

  </tr>
</tbody>
</table>
{{error.remedy}}
<button type="submit" class="btn btn-default">Create</button>
<a href="#!errorinput" class="btn btn-default">Cancel</a>

这是javascript中的代码:

$scope.remedyrows = [];
$scope.addRemedyRow = function() {
  $scope.remedyrows.push({
    remedy: $scope.error.remedy
  });

以下是我收到的输出(截图):

enter image description here

我添加dsdfg作为第二行,我的最终error.remedy值只显示dsdfg,而不是显示两个值的数组:[wdssdsd,dsdfg]errorremedyString数组类型字段之一的主文档。

关于如何实现这一目标的任何想法?

2 个答案:

答案 0 :(得分:1)

使用中间变量error.remedy来显示结果并将其发送到服务器,而不是使用remedyrow作为未来output的持有者:

<强>使用Javascript:

$scope.output = $scope.remedyrows.map(function(x) { return x.remedy; });
$http({data: $scope.output, method: 'POST', url: url});

<强> HTML:

{{output | json}}

答案 1 :(得分:1)

你可以通过以下方式实现它:

 $scope.remedyrows = [];
    $scope.output;
    $scope.addRemedyRow = function() {
      $scope.remedyrows.push({
        remedy: $scope.error.remedy
      });
     $scope.output = $scope.remedyrows.toString();
    }

和html

{{output}}