我的项目逻辑就是这个。
HTML form
内有<select multiple>
,其中包含String
event-dialog-controller.js
String
变量
vm.usernames
的变量,并将其设置为<input type="hidden">
REST
Spring
服务
Spring
会自动转换Event
class 我的问题是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
的字段都可以正常运行。
我知道我错过了什么,请帮助我!
答案 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;
};