我有如下多选:
<select
class="form-control"
ng-model="formData.selected_tests"
multiple="true"
ng-multiple="true"
ng-options="c.test for c in tests"
id="tests"
ng-attr-size="<% tests.length %>">
</select>
test
对象包含id
、test
和length
属性。
$scope.submit = function() {
console.log($scope.formData);
$http.post('/api/v2/test', $scope.formData)
.success(function(data) { })
.error(function(data){ })
}
当我提交表单时,我希望 formData.selected_tests 只包含所选 id
属性的数组。我不想提交整个 test
对象。
最佳答案
您可以使用 select as label for value in array
语法,在您的情况下为:
<select
...
ng-options="c.id as c.test for c in tests"
>
这会将 id
放在 formData.selected_tests
而不是整个对象中。如果您在某个地方需要整个对象,那么您将不得不转换发送的数据,例如有一个功能:
$http.post('/api/v2/test', transform($scope.formData))
transform()
将创建一个新对象,如 formData
,但会用它们的 id 替换测试。使用 angular.copy()
可能会很方便。
关于javascript - AngularJS Select Multiple - 如何提交 id 而不是整个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23390462/