我有一个包含大约30个字段的表单,一旦用户编辑一个字段并关闭输入框,函数save($data, customer.custref)
就会将数据和id(custref)传递给控制器。我遇到的问题是将数据转换为json,然后通过补丁请求发送。
保存功能:
$scope.save = function(data, id){
console.log(data);
$http.patch(API_URL + "v1/customers/" + id, data)
.then(function (response) {
console.log("here");
},function error(response) {
console.log('error');
$scope.error = response.statusText;
});
};
HTML:
<td data-title="'company'" >
<p class="form-control-static"><a href="#" editable-text="customer.company" onbeforesave="save($data, customer.custref)">
{{ customer.company || 'empty' }}
</a></p>
</td>
在代码片段中,我将data
传递给补丁请求,但这需要是一个对象,否则它无效json:
$scope.updateObj = {
company: data.company ??
}
我之前没有使用xeditable做过类似的事情 在输入字段上输入ng-model并创建一个对象,如:
$scope.updateObj = {
company: $scope.company,
name: $scope.name
}
$http.patch(API_URL + "v1/customers/" + id, updateObj){
//......
但我不能这样做,因为输入字段是为我生成的。我真的感到困惑,并希望得到任何帮助
答案 0 :(得分:0)
您可以传递属性名称作为要保存的参数。
<强>控制器强>
$scope.save = function(data, id, fieldName){
console.log(data);
var patchObj = {};
patchObj[fieldName] = data;
$http.patch(API_URL + "v1/customers/" + id, patchObj)
.then(function (response) {
console.log("here");
},function error(response) {
console.log('error');
$scope.error = response.statusText;
});
};
<强> HTML 强>
<td data-title="'company'" >
<p class="form-control-static"><a href="#"
editable-text="customer.company"
onbeforesave="save($data, customer.custref, 'company')">
{{ customer.company || 'empty' }}
</a></p>
</td>