我在我的 SPA 中使用 Durandal 2.0 & Breeze。
我的司机(司机)有一个侧边栏菜单,用户可以在其中单击子菜单(Récents、Disponibles、Indisponibles)以使用不同的参数调用我的视图。这将用数据填充 koGrid。数据在激活调用中获取,koGrid 的绑定在 compositionComplete 中完成。
大多数时候一切都很顺利。当我快速单击子菜单(调用相同的视图)时,事情就出错了。示例:我单击“最近”并立即(不等待视图显示)单击“Disponibles”。
我有以下激活:
var activate = function (filterParam) {
filter(filterParam);
pagedDataSource.getDataFunction = getData;
pagedDataSource.getPredicatesFunction = getPredicates;
return pagedDataSource.reload();
};
我有以下compositionComplete代码:
var compositionComplete = function (view) {
bindEventToList(view, '.kgCellText', gotoDetails);
$('#mySearchGrid').attr('data-bind', 'koGrid: gridOptions');
ko.applyBindings(vm, document.getElementById('mySearchGrid'));
};
当我跟踪活动时,我注意到如果用户快速单击子菜单,则激活没有时间完成并再次调用(对于用户的第二次单击)并且 compositionComplete 不会执行。在那之后,视觉上什么都没有发生。好像被屏蔽了
知道如何防止这个问题吗?
谢谢。