test 对象包含id、test 和length 属性。 $scope.submit = function() { console.log($scope.formDat-6ren">
gpt4 book ai didi

javascript - AngularJS Select Multiple - 如何提交 id 而不是整个对象

转载 作者:行者123 更新时间:2023-11-30 17:29:46 25 4
gpt4 key购买 nike

我有如下多选:

<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 对象包含idtestlength 属性。

$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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com