foreach 바인딩을 정렬과 결합하는 데 문제가 있습니다.녹아웃 - foreach 및 정렬 함께 사용
<article data-bind="foreach: widgets">
위젯은 간단한 obvservable 배열 :
이 멋지게 나에게 내 "위젯"의 목록을 제공하는 작품var widgets= ko.observableArray();
그래서 같은 바인딩 목록을 가지고있다. 이 목록에 새 "위젯"을 추가하면 데이터 바인딩을 통해 목록에 동적으로 나타납니다. 그러나 최대한 빨리 배열에 정렬 추가 할
:
<article data-bind="foreach: widgets.sort(function (left, right) { return left.order() == right.order() ? 0 : (left.order() < right.order() ? -1 : 1); })">
다음 새로 위젯이 더 이상 내 목록에 나타나지 않습니다 추가 - 내가 페이지를 다시로드하지 않는 한. (이 시점에서 정렬이 제대로 작동합니다. 정렬하는 "주문"필드를 업데이트하면 목록의 항목이 동적으로 다시 정렬됩니다.)
관찰 가능한 배열의 새 항목을 동적으로 업데이트하면서 정렬 작업을 수행하려면 어떻게해야합니까?
데이터를 검색하기 위해 Breezejs를 사용하고 있지만이 시나리오에 영향을 미치지 않는다고 생각합니다.
:
그럼 당신은 그것을 바인딩 할 수 있습니다. ko.computed 시작 부분 (첫 번째 괄호 안쪽)에 "function()"을 포함하도록 답변을 업데이트하십시오. 나는 그것을 대답으로 받아 들일 것이다. – daveywc
위의 답에 더하여, 내 최상위 목록에있는 위젯 중 하나의 탐색 속성에서 중첩 된 foreach 즉 foreach에 대해이 작업을 수행하는 방법은 무엇입니까? 이 경우에는 바인딩하는 관찰 가능 배열을 명시 적으로 선언하지 않으므로이 방법을 사용하는 방법을 볼 수 없습니다. – daveywc
답안에 오타가 수정되었습니다. Breezejs에 익숙하지 않지만 이러한 사용자 지정 정렬 속성을 만들도록 구성 할 수 있다고 생각합니다. 어쨌든 JS는 동적이므로 이미 존재하는 모든 객체에 새 속성을 추가 할 수 있습니다. – nemesv