2014-01-16 26 views
1

我使用Durandal 2.0 &微风在我的SPA中。如果用户在菜单上快速点击,Durandal视图不会再显示

我有我的司机(司机)的侧边栏菜单,用户可以点击子菜单(Récents,Disponibles,Indisponibles)用不同的参数调用我的视图。这将填充数据的koGrid。数据在激活调用中获取,并且koGrid的绑定在compositionComplete中完成。

enter image description here

一切顺利的大部分时间。当我在子菜单上快速点击(调用相同的视图)时,事情出错了。例如:我点击'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不执行。之后,视觉上再也没有发生过。它似乎被阻止。

任何想法如何防止此问题?

谢谢。

+2

您使用的是哪种Durandal版本?在2.0.1之前有一个问题。详情请参阅https://github.com/BlueSpire/Durandal/issues/305。 – RainerAtSpirit

+0

我正在使用2.0.0。正如您提供的链接中提到的,如果我关闭转换,问题就消失了。非常感谢您的帮助。所以我会尽快将我的Durandal版本迁移到2.0.1。 – Bronzato

+0

如果您在应用的修改中添加答案并将其作为答案接受,会很好。 – RainerAtSpirit

回答

0

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

相关问题