js不想绑定我的记录列表,已按位置分组
Knockout.js not wanting to bind my list of records that has been grouped by location
我已经试了好几天了,但是运气不好。我正在构建一个ASP。asp.net MVC 5应用程序。我正在创建一个餐厅预订应用程序。其思想是提取一个按位置与实体的linq分组的天数预订,然后将其与signalR一起发送到客户端。在客户端,我想绑定这个分组查询与knockout.js,然后显示它,这就是一切都出错了。将分组预订发送到客户端工作正常,但我似乎无法使映射与淘汰工作。请帮助。
Model on Server Side
var Reservations = db.BistroReservations_Reservations
.GroupBy(reservation => reservation.BistroReservations_Location.Description)
.OrderBy(reservation => reservation.Key.ToString()).ToList();
var context = Microsoft.AspNet.SignalR.GlobalHost.ConnectionManager.GetHubContext<ReservationsHub>();
context.Clients.All.TestingGroupedReservations(Reservations);
客户端模型
var ReservationsViewModel = function () {
var self = this;
var connection = $.hubConnection();
var hub = connection.createHubProxy('reservationsHub')
var GroupedReservations = ko.mapping.fromJS(reservations);
//Testing -map a collection object to a observalbe and display it underneath the webpage
hub.on('TestingGroupedReservations', function (reservation) {
ko.mapping.fromJS(reservation, GroupedReservations);
});
}
ko.applyBindings(new ReservationsViewModel());
客户端视图端代码
<table class="table" data-bind="visible: !loading()">
<thead class=".h1 glyphicon-bold">Reservations of Selected Day</thead>
<tbody data-bind="foreach: GroupedReservations">
<tr>
<td>Shift</td>
<td>
<table data-bind="foreach:$data">
<tbody>
<tr>
<td data-bind="text:BistroReservations_GuestID"></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
Try
this.GroupedReservations = ko.mapping.fromJS(reservations);
这行中"reservations"变量的声明在哪里:
var GroupedReservations = ko.mapping.fromJS(reservations);
从一开始你从来没有设置groupedrereservations属性,你也没有返回self。如果你没有return self
,你的所有属性都被认为是私有的。
另外,任何你想要公开访问的东西都需要成为self
上的属性。
var ReservationsViewModel = function () {
var self = this;
var connection = $.hubConnection();
var hub = connection.createHubProxy('reservationsHub')
**self.GroupedReservations = ko.mapping.fromJS(reservations);**
//Testing -map a collection object to a observalbe and display it underneath the webpage
hub.on('TestingGroupedReservations', function (reservation) {
ko.mapping.fromJS(reservation, GroupedReservations);
});
**return self;**
}
相关文章:
- 修复列表的绝对位置(li's隐藏在前两个后面)
- 我如何才能获得Facebook在边界内的位置列表
- 生成ACF标记位置的数组(元素列表后缺少])
- jQuery拖动到相对位置的可排序列表中时出现可拖动辅助对象位置问题
- 获取可滚动列表中第一个可见项的位置
- 正在获取列表项位置()
- 单击下拉列表时保持滚动位置(javascript)
- 如何根据从角度下拉列表中选择的值路由到不同的位置
- 根据angularjs中画布上的位置对列表项进行排序
- 当我从目的地链接返回时,如何在列表组中保持该位置
- 无序列表 jQuery 在固定位置显示列表中的选定项
- 如何通过单击页面上的任意位置关闭下拉列表
- 为什么从位置哈希中选择下拉列表在 Chrome 上有效,但不适用于 Firefox、IE 或 Safari
- 默认情况下,在 angularjs 中选择下拉列表中的最后一个位置显示占位符
- 在使用可排序排序期间/之后显示使用 JSON 创建的列表中的项目位置
- 下拉搜索菜单列表不会丢弃在应有的位置
- 使用 ng 重复从可排序列表中获取每个项目的位置
- 为什么这些列表项的位置不正确
- 返回我之前指定的谷歌地图位置列表
- 使用google location API获取以特定位置为中心和半径(例如50km)的位置列表