gpt4 book ai didi

javascript - 表单不发送更新的输入值

转载 作者:行者123 更新时间:2023-12-03 06:53:28 25 4
gpt4 key购买 nike

在我的页面上我有 bs-table。数据来自api调用。通过单击行,我发送新的 api 调用以从数据库检索行数据。然后我为 res 数据设置范围变量并将其呈现在页面上

$('#table').on('click-row.bs.table', function (e, row, $element) {

$('.success').removeClass('success');
$($element).addClass('success');

var indexId = $table.find($element).data('index');
var rowData = $table.bootstrapTable('getData')[indexId];
$scope.id = rowData.id;

$http.get(url + $scope.id)
.then(function (res) {
$scope.rowData = res.data.model;
console.log($scope.rowData);
$scope.rowKeys = Object.keys($scope.rowData);
});
$scope.$apply();

});

html:

<form style="padding: 15px" ng-submit="submitForm()">
<div class="form-group row">
<div ng-repeat="k in rowKeys | filter: '!id'" ng-model="rowValue">
<label for="rowValue" class="col-sm-2">
<!--{{k | hide:'.name'}}:-->
{{k }}:
</label>
<div class=" col-sm-2">
<input class="form-control rowValue" id="rowValue" value="{{rowData[k]}}"/>
</div>
</div>
</div>
<button type="submit" class="btn btn-default" ng-if="rowData" >Submit</button>

然后通过 ng-submit 我想发回以该表单所做的更改

 $scope.submitForm = function() {

$scope.$watch('rowData', function(newValue, oldValue) {
console.log('being watched oldValue:', oldValue, 'newValue:', newValue);
}, true);

$http({
method : 'PUT',
url : url + $scope.id,
data : $scope.rowData, //form
headers : {'Content-Type': 'application/json'}
})
.then(function (res) {
//console.log(res);
//console.log($scope.rowData);
return res;
});
};

正如您所看到的,我已经设置了 $watch 来跟踪范围变量的更改,但问题是控制台日志为 oldValue 和 newValue 返回相同的值。有人能解释一下我的错误在哪里吗?我很感激任何帮助

最佳答案

您没有将值绑定(bind)到任何东西。不要在输入元素上使用 value="{{rowData[k]}}",而是使用 ng-model: ng-model="rowData[k]"

关于javascript - 表单不发送更新的输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37395770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com