如何从表单中的选择向服务器发送数据

时间:2014-03-24 09:56:22

标签: angularjs

我有这个控制器:

  $scope.disciplines = disciplines;
  $scope.discipline = disciplines[0];

这是一个数组。

我的形式是:

  <form class="form-horizontal" ng-submit="submit()"  method="post">
    <input type="text" name="prj_title"  ng-model="project.prj_title" class="form-control" id="title">
    <select id="discipline" class="form-control" name="prj_discipline" ng-model="discipline" ng-options="d for d in disciplines"></select>
    <input type="submit" class="btn btn-block btn-success btn-lg" value="Ansök">
</form>

这是我的帖子:

      $scope.submit = function(){
        $http({
          method  : 'POST',
          url     : '/api/project',
          data    : $.param($scope.project),  // pass in data as strings
          headers : { 'Content-Type': 'application/x-www-form-urlencoded' }  // set the headers so angular passing info as form data (not request payload)
        })
        .success(function(data, status) {
          ...
          }
        })
      };

第一个输入有效。服务器收到prj_title:。

但是select标签不起作用。

name = discipline似乎没有效果。该值不会发送到服务器。已阅读文档,name属性应在select标记上有效。我想要的是发送prj_discipline的select标签:

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您可以像输入一样更改选择ng-model

<select id="discipline" class="form-control" name="prj_discipline" 
ng-model="project.prj_discipline" ng-options="d for d in disciplines"></select>

基本上你只需要表单验证的名称,你发布的是$scope.project对象,它没有名称为prj_discipline的属性,所以如果你将你的选择模型绑定到project.prj_discipline它会工作...