2014-01-16 1 views
1

Durandal 2.0 & Breeze를 사용합니다.사용자가 메뉴를 빠르게 클릭하면 Durandal보기가 더 이상 표시되지 않습니다.

내 드라이버 (Chauffeurs)의 사이드 바 메뉴에서 사용자가 다른 매개 변수로 내 뷰를 호출하기위한 하위 메뉴 (Rencents, Disponibles, Indisponibles)를 클릭 할 수 있습니다. 이렇게하면 koGrid에 데이터가 채워집니다. 활성화 호출에서 데이터를 가져오고 koGrid의 바인딩은 compositionComplete에서 수행됩니다.

enter image description here

모든 것이 잘 대부분의 시간을 간다. 하위 메뉴 (같은보기를 호출)에서 매우 빠르게 클릭하면 상황이 잘못됩니다. 예 : 'Récents'를 클릭하고 즉시 (보기가 표시 될 때까지 기다리지 않고) '할인 가능'을 클릭합니다.

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 로의 마이그레이션으로 문제가 해결되었습니다.

관련 문제