在Angularjs控制器内捕获表单数据

在Angularjs控制器内捕获表单数据,angularjs,angularjs-scope,angularjs-controller,Angularjs,Angularjs Scope,Angularjs Controller,我对Angularjs是新手。我有表单数据,我需要向传递数据的服务器发出post请求。我已经在angularjs中完成了UI和控制器部分,但不知道如何捕获表单数据。请找到plnkr的链接- 单击add按钮,添加一个新的li元素,单击减号时删除该元素。我需要把所有的键值项转换成以下格式,以便发送Post请求 { "search_params": [ { "key": "search string", "predicate": "matches", "value":

我对Angularjs是新手。我有表单数据,我需要向传递数据的服务器发出post请求。我已经在angularjs中完成了UI和控制器部分,但不知道如何捕获表单数据。请找到plnkr的链接-

单击add按钮,添加一个新的
li
元素,单击减号时删除该元素。我需要把所有的键值项转换成以下格式,以便发送Post请求

{
  "search_params": [
  {
    "key": "search string",
    "predicate": "matches",
    "value": "choosen text"
  },
  {
    "key": "search string",
    "predicate": "not-matches",
    "value": " search value"
  },
  {
    "key": "search string",
    "predicate": "matches",
    "value": " search value"
  }
]
}

如何在控制器内的
searchParams
函数中捕获表单数据并在我的控制器内构造param对象。请让我知道,因为我是Angularjs的新手

更新问题 根据输入,我能够在控制器中获得用户详细信息。但有几件事:

  • 默认情况下,将有一个
    li
    元素,当用户提交时,当前
    li
    元素数据应在控制器中捕获
  • 只有当我使用加号按钮添加条件时,数组才会得到更新,但提交时模型中的最后一个元素数据不会更新
  • 删除这些标准也同样适用
链接到更新的Plunker-

指令,如
需要ng模型属性才能将输入正确绑定到$scope属性

在HTML标记中,必须使用必需的属性(如ng模型)更新表单元素

我建议(在控制器/链接中)对具有不同属性的表单数据只使用一个对象,如

var form = {
    name: '',
    surname: '',
    wharever: ''
}
相应的
将为ex.


填充“form”对象后,您可以在请求之前执行JSON.stringify(form)(如果您使用其他内容类型,则使用application/JSON)。

根据您发布的JSON,在@Chris Hermut上展开,并假设您需要一个映射数组。你可以这样做

 var arr = [];
  var form = {
    name: 'asd',
    surname: 'aasdasdsd',
    wharever: 'asd'
  }
  arr.push(form);

  //prentending to be another (key,value)
  form.surname = 'hfg';

  arr.push(form);

下面是一个例子。

这可能有助于您开始工作。我验证了您的plunkr,但有些条件不起作用。我更新了问题