角度数组未传递到主控制器窗体对象
angular array isn't passing to main controller form object
我有一个EventController,并使用EventService保存到localStorage。
vm.event = event;
function event() {
vm.dataLoading = true;
EventService.Create(vm.events) //save using ( api/events/ + id )
.then(function (response) {
if (response.success) {
FlashService.Success('Event created successful', true);
$location.path('/events');
} else {
FlashService.Error(response.message);
vm.dataLoading = false;
}
});
}
查看所有活动:
<td>{{events.eventType}} </td>
<td>{{events.eventName}}</td>
...
我的问题是我尝试添加带有数组的客人列表
vm.guests = [];
vm.addGuest = function () {
vm.guests.push(vm.newGuest);
}
vm.removeGuest = function (guest) {
var index = vm.guests.indexOf(guest);
vm.guests.splice(index, 1);
}
.html
<input type="text" name="guests" id="guests" class="form-control" ng-model="vm.newGuest" />
<button type="submit" ng-click="vm.addGuest()" class="btn btn-primary">Add Guest</button>
<div ng-repeat="guest in vm.guests track by $index">
{{guest}}
我可以通过单个输入/按钮将字符串添加到数组中
但是,数组不会传递给事件对象。
{
"eventType": "Birthday",
"eventName": "Part at Lake Lettuce"
}
[
"Joe",
"Tom"
]
我的目标是将数组添加到对象中
{
"eventType": "Birthday",
"eventName": "Part at Lake Lettuce"
"guests": [
"Joe",
"Tom"
]
}
您需要设置事件的 guests
属性。您可能希望在event()
函数中执行此操作。
function event() {
vm.dataLoading = true;
vm.events.guests = vm.guests;
EventService.Create(vm.events)
.then(function (response) {
if (response.success) {
FlashService.Success('Event created successful', true);
$location.path('/events');
} else {
FlashService.Error(response.message);
vm.dataLoading = false;
}
});
}
在这种情况下,您必须初始化来宾数组。
vm.guests = vm.events.guests || [];
或者,您可以让来宾修饰符函数引用事件
vm.addGuest = function () {
vm.events.guests.push(vm.newGuest);
}
vm.removeGuest = function (guest) {
var index = vm.events.guests.indexOf(guest);
vm.events.guests.splice(index, 1);
}
此外,我发现事件与事件命名令人困惑。在事件控制器中,我建议将vm.event()
函数重命名为 vm.createEvent()
,然后调用events
模型 只是event
.
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 防止Iframe窗体在新窗口中打开
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 从控制器返回后Ajax启动事件激发
- Meteor-将选定窗体中的对象添加到集合中
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- 如何在单击复选框后调用控制器方法
- 在控制器和数据对象之间同步数据
- 将Javascript数组发送到控制器ASP.NET MVC
- 角度控制器结构
- 如何在Jquery中发布后将值从视图返回到控制器
- 模型数据未通过窗体传播到控制器ASP.NET MVC4
- 如何打开模态窗体,在控制器中执行操作,并在 Grails 中呈现结果
- 角度数组未传递到主控制器窗体对象
- 从窗体将窗体数据从视图传递到控制器
- 在多个窗体中对控制器进行角度、必要的检查
- 控制器中未定义窗体
- 在弹出窗口中加载内容窗体控制器
- Rails动态窗体远程真实控制器没有响应
- 从子控制器获取窗体状态到父控制器