1
我使用Durandal 2.0 &微风在我的SPA中。如果用户在菜单上快速点击,Durandal视图不会再显示
我有我的司机(司机)的侧边栏菜单,用户可以点击子菜单(Récents,Disponibles,Indisponibles)用不同的参数调用我的视图。这将填充数据的koGrid。数据在激活调用中获取,并且koGrid的绑定在compositionComplete中完成。
一切顺利的大部分时间。当我在子菜单上快速点击(调用相同的视图)时,事情出错了。例如:我点击'Récents'并立即(无需等待视图显示)点击'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不执行。之后,视觉上再也没有发生过。它似乎被阻止。
任何想法如何防止此问题?
谢谢。
您使用的是哪种Durandal版本?在2.0.1之前有一个问题。详情请参阅https://github.com/BlueSpire/Durandal/issues/305。 – RainerAtSpirit
我正在使用2.0.0。正如您提供的链接中提到的,如果我关闭转换,问题就消失了。非常感谢您的帮助。所以我会尽快将我的Durandal版本迁移到2.0.1。 – Bronzato
如果您在应用的修改中添加答案并将其作为答案接受,会很好。 – RainerAtSpirit