我正在尝试为我的数据库中的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
});
以下是我收到的输出(截图):
我添加dsdfg
作为第二行,我的最终error.remedy
值只显示dsdfg
,而不是显示两个值的数组:[wdssdsd,dsdfg]
。 error
是remedy
是String
数组类型字段之一的主文档。
关于如何实现这一目标的任何想法?
答案 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}}