在js中从表单提交中删除响应正文的前缀

时间:2015-08-29 21:46:17

标签: javascript angularjs express

我使用Angular创建了一个表单,在帖子提交中,响应正文以这种格式带有数据类型的前缀:

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

是否有更简单的方法可以采用以下格式

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

目前我正在对此进行递归删除一般前缀,如Number&串

请注意,此处使用的表单类型为Select-Options

1 个答案:

答案 0 :(得分:2)

1RST。我建议你不要将你的模型命名为" ngMake",这是一种不好的做法。 " NG"是angularjs的保留前缀。让我们称之为" makeObj"。当你迭代" make"它将被绑定到模型。阵列。

第二,你使用ng-options是错误的。在您的情况下,它应该像这样使用:select as label for value in arraylabel for value in array
其中
  - 选择应该是" makeObj.id" (您要发送的对象属性)
  - 标签应该是您希望显示为选项的数据," makeObj.name"
  - 值应为" 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 here

的更多信息