在js中,表单提交时从响应体中删除前缀

Removing prefix from response body on form submission in js

本文关键字:响应 删除 前缀 js 表单提交      更新时间:2023-09-26

我用Angular创建了一个表单,在post提交中,响应体带有一个数据类型的前缀,格式如下:

{
 field1: 'String: input1',
 field2: 'String: input2',
 field3: 'Number: input3'
}

是否有一种更简单的方法来获得以下格式

{
 field1: 'input1',
 field2: 'input2',
 field3: 'input3'
}

目前我正在递归地删除一般前缀,如数字&字符串

请注意这里使用的表单类型是选择选项

我建议你不要把你的模型命名为"ngMake",这是一个不好的做法。"ng"是为angularjs保留的前缀。我们叫它"makeObj"。当你迭代"make"数组时,它将被绑定到模型。

第二,你对ng-options的使用是错误的。在您的情况下,它应该这样使用:select as label for value in arraylabel for value in array
其中
-选择应该是"makeObj"。Id "(您希望发送的对象属性)
- label应该是你希望作为选项显示的数据,"makeObj.name"
- value应为"makeObj"
-数组是"make"

所以基本上是:

<select 
  id="makeObj" 
  ng-model="makeObj" 
  ng-change="getModelData(makeObj)" 
  ng-options="makeObj.id as makeObj.name for makeObj in make">
</select>

,如果你不希望获得一个属性,而是整个JSON对象:

<select 
  id="makeObj" 
  ng-model="makeObj" 
  ng-change="getModelData(makeObj)" 
  ng-options="makeObjVal for makeObj in make">
</select>

这应该可以解决您的问题,不需要一个函数来获取子字符串。
你可以在这里了解更多关于ngOptions的信息