我有这个控制器:
$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标签:
我做错了什么?
答案 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
它会工作...