knockout.js和表不添加新行
是否有任何原因导致以下javascript和html不会显示行?我在网格对象中看到该对象,但它没有显示在表中。我做错什么了吗 视图模型knockout.js和表不添加新行,knockout.js,html-table,Knockout.js,Html Table,是否有任何原因导致以下javascript和html不会显示行?我在网格对象中看到该对象,但它没有显示在表中。我做错什么了吗 视图模型 app.viewModel.members.eventSchedule = { gyms: ko.observableArray(null), grid: ko.observableArray([]), . . . 从Ajax请求填充初始网格 function populateG
app.viewModel.members.eventSchedule = {
gyms: ko.observableArray(null),
grid: ko.observableArray([]),
.
.
.
从Ajax请求填充初始网格
function populateGrid(grid) {
var mapping = {
'Matchup': {
create: function (options) {
if (options.data) {
return ko.mapping.fromJS(options.data);
}
return null;
}
}
};
viewModel.grid(ko.mapping.fromJS(grid.Dates, mapping)());
viewModel.gyms(grid.Gyms);
}
添加新行
var timeRow = {
Time: ko.observable(data.Newtime),
Games: ko.observableArray([])
};
var gymCourts = viewModel.gymCourts();
for (var k = 0; k < gymCourts.length; k++) {
timeRow.Games.push(new Game(data.Dates, data.NewTime, gymCourts[k].Id, gymCourts[k].Order));
}
viewModel.grid()[0].Times().push(timeRow);
var timeRow={
时间:ko.可观察(数据:新时间),
游戏名称:ko.array([])
};
var gymCourts=viewModel.gymCourts();
for(var k=0;k<0.length;k++){
timeRow.Games.push(新游戏(data.Dates,data.NewTime,gymCourts[k].Id,gymCourts[k].Order));
}
viewModel.grid()[0].Times().push(timeRow);
表格HTML
<tbody data-bind="foreach: grid">
<tr>
<td class="empty"></td>
<td class="date-container" data-bind="attr: { colspan: $parent.gymCourts().length }">
<div class="date" data-bind="html: Date"></div>
</td>
</tr>
<!-- ko foreach: Times -->
<tr class="time-games">
<td class="time-container">
<a href="#" class="time" data-bind="html: Time, click: $root.members.eventSchedule.editTime.edit.bind($data, $parent)"></a>
</td>
<!-- ko foreach: Games() -->
<td class="game-container draggable-item-container clearfix">
<div class="game clearfix draggable-active draggable-item" data-bind="if: $data.Matchup, css: { 'empty' : !$data.Matchup, 'ui-droppable-disabled': $data.Disabled }, dynamicClass: { position: ($data.Matchup ? $data.Matchup.DivisionOrder() : 0) }, draggableGameHandler : { disabled: !$data.Matchup, disabledDrop: $data.Disabled() }">
<span data-bind="html: (Matchup.PoolName() + Matchup.AwayTeam.Number())"></span> vs. <span data-bind="html: (Matchup.PoolName() + Matchup.HomeTeam.Number())"></span>
</div>
</td>
<!-- /ko -->
</tr>
<!-- /ko -->
</tbody>
vs。
检查此行:viewModel.grid()[0].Times().push(timeRow);您正在将新的时间行推送到ObservalArray内的数组中。这不会自动通知侦听器。能否尝试viewModel.grid()[0].Times.push(timeRow);相反?要做的工作太多了。请检查此行:viewModel.grid()[0].Times().push(timeRow);您正在将新的时间行推送到ObservalArray内的数组中。这不会自动通知侦听器。能否尝试viewModel.grid()[0].Times.push(timeRow);相反?就是这样,你把答案贴出来,我就可以接受了。接得好,可能永远也不会接。我很高兴就是这样!答案贴出来了。