<input type =“hidden”/>不向REST发送值

时间:2017-07-05 07:28:25

标签: javascript html angularjs spring rest

我的项目逻辑就是这个。

  1. 我的HTML form内有<select multiple>,其中包含String
  2. 列表
  3. 使用Angular.js函数,我使用选定的event-dialog-controller.js
  4. 填充String变量
  5. 我接受名为vm.usernames的变量,并将其设置为<input type="hidden">
  6. 的值
  7. 我使用REST
  8. 使用表单的数据调用Spring服务
  9. Spring会自动转换Event class
  10. 对象中的输入
  11. 我最终看到的是那个对象
  12. 我的问题是vm.usernames中应该获得REST值的字段为空。我在调用表单时使用vm.usernames来检查console.log(vm.usernames)是否正确,这是正确的。

    我该如何解决这个问题?

    HTML代码:

    <div class="form-group">
        <label for="field_attendeestoparse">{{vm.usernames}}</label>
        <select class="form-control" multiple ng-model="vm.attendeesToParse" ng-change="vm.selectUsernames(vm.attendeesToParse)"
                        ng-options="customUser as customUser.username for customUser in vm.customusers | orderBy:'id' ">
        </select>
        <input class="form-control" type="hidden" name="attendees" id="field_attendees" ng-model="vm.event.attendees" ng-value="vm.usernames" />
    
    </div>
    

    我不会在此处粘贴我的Angular函数,因为我确信它可以执行它必须执行的操作。

    一点点说明。如果我使用与<input type="text">具有相同属性的<input type="hidden">并且我从键盘插入值,则它可以完美地运行。我不知道为什么隐藏不会发送那个价值。

    所有其他Event的字段都可以正常运行。

    我知道我错过了什么,请帮助我!

1 个答案:

答案 0 :(得分:0)

终于解决了这个问题。分享解决方案很愉快,也许对某人有帮助。

我创建了一个新的<input type="text" disabled>,使用Angular.js'函数我用选定的选项填充它,然后我发送表单。 换句话说,当我点击选项时,它们会自动设置为输入文本中的值。

它工作得很好,也许它不是最好的语义解决方案,但它解决了问题并且有效,所以我想使用这个版本的代码。

HTML代码:

<div class="form-group">
    <label for="field_attendees">Attendees</label>
    <select class="form-control" multiple ng-model="vm.attendeesToParse" ng-change="vm.selectUsernames(vm.attendeesToParse)"
                    ng-options="customUser as customUser.username for customUser in vm.customusers | orderBy:'id' ">
    </select>
    </br>
    <input disabled type="text" class="form-control" name="attendees" ng-model="vm.event.attendees" id="field_attendees" />
</div>

angular.js控制器:

$scope.usernames = '';
    vm.selectUsernames = function(model) {
        $scope.usernames = "";
        for (var i = 0; i < model.length; i++) {
            $scope.usernames += model[i].username + " ";
        }
        vm.event.attendees = $scope.usernames;
};