1

我在我的 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 不会执行。在那之后,视觉上什么都没有发生。好像被屏蔽了

知道如何防止这个问题吗?

谢谢。

4

1 回答 1

0

迁移到最新的 Durandal 版本 2.0.1 解决了这个问题。

于 2014-01-17T15:45:04.973 回答