보기에는 많은 논리가있어 보통 상황이 상당히 복잡해집니다. viewmodel에 클릭 핸들러를 추가하여 시작하십시오. 업데이트를 연기해야하는지 확인하는 데 사용할 수있는 관찰 가능한 isSorting
을 만듭니다. 내가 다른 카테고리에 바인딩 이벤트 리스너를 생성하는 도우미 메서드를 사용하는 것이 좋습니다 것
var self = this;
self.sort = ko.observable("Title");
self.isSorting = ko.observable(false);
self.onClick = function(sortBy) {
if (self.isSorting()) {
// Queue logic
} else {
self.sort(sortBy);
}
};
: 그것에서
는 가장 기본적인 형태입니다. 예를 들어 :
self.sortHandlerFor = function(sortBy) {
return self.onClick.bind(self, sortBy);
};
당신과 같이 사용할 수있는 :
<a data-bind="click: sortHandlerFor('Title')"></a>
<a data-bind="click: sortHandlerFor('StartDate')"></a>
당신은 액티브/패시브 상태 논리에 같은 생각을 사용할 수 있습니다 : 비아 true
또는 false
을 계산 반환하는 팩토리 메소드를 만들 뷰 대신 뷰 모델.
sort
작업의 대기열 논리는 비동기 코드와 밀접하게 관련되어 있습니다. 도움이 필요하면 질문을 수정하여 앱의이 부분을 추가하는 것이 좋습니다.
정렬이 진행 중일 때 - 애니메이션입니까, 아니면 비동기 적으로 실행되는 정렬 기능입니까? –