2013-10-05 1 views
0

드래그 앤 드롭으로 재정렬하기 위해 JQuery-ui를 사용하는 목록에 관찰 가능한 배열을 바인딩했습니다. 또한 관측 가능한 배열에서 항목을 제거 할 수 있기를 원합니다. 이미 재정렬 된 항목을 제거하기 전까지는 모든 것이 잘 작동하는 것 같습니다. http://jsfiddle.net/4mMfE/녹아웃 JS + JQuery UI - 순서 재 지정 후 관찰 가능 배열에서 항목을 제거 할 때의 문제

그를 제거 한 다음 목록에서 세 번째 항목이 될하고 "곰"을 끌어 시도가 제대로 작동 나던, 아직 당신이 다른 사람을 제거 할 수 있습니다

는 다음 JsFiddle 코드를 살펴 보자.

누구나 예상대로 작동하도록하는 방법을 알고 있습니까?

나는 viewModel의 관찰 가능한 배열이 페이지에 표시된 요소의 실제 순서와 일치하지 않는다고 생각합니다.

. 

답변

3

당신은 당신이 항목을 제거하기 위해 갈 때 사용자가 DOM에있는 항목의 순서를 변경하고 그것이 observableArray 업데이트되지 않는, 그래서 사실과 관련이있다하는 것이 올바른 것 그것 찾을 수 없습니다.

사용자 지정 바인딩이 필요하며 재주문 이벤트를 수신하고 그에 따라 모델을 업데이트합니다. 편리하게도 jQuery UI sortable에 이미 존재합니다. https://github.com/rniemeyer/knockout-sortable

+0

이것은 내가 필요한 라이브러리입니다. 공유해 주셔서 감사합니다. – PercivalMcGullicuddy

0

Knockout은 UI 업데이트 방법을 알지 못합니다. 그것은 배열에서 요소를 제거합니다.

removeItem 함수를 this로 변경하면 직접 볼 수 있습니다.

alert(self.items().slength); 
self.items.remove(data); 
alert(self.items().slength); 
관련 문제