0
knockoutjs에 계층 구조가 있습니다. 이 구조는 N 깊은 곳으로 갈 수 있지만 일상적으로 사용하면 깊이가 지나지 않습니다. 그것은 대략 이와 같이 보입니다.상태가 객체 배열 만들기
특정 상태에있는 모델 개체의 플랫 목록을 제공하는 계산 기능을 만들고 싶습니다.
나는이 작업을 한 단계 깊게 수행 할 것입니다.
self.SomeStatus = ko.computed(function() {
ko.utils.arrayMap(self.Children(), function(item) {
if(item.Status() === "SomeStatus")
return item;
});
}
이 상태가 동일한 N 레벨의 깊은 모델 배열을 반환하려면 어떻게 구현할 수 있습니까?
미리 감사드립니다. 과 같이,이 경우
self.items = ko.observableArray();
function flattenList(flattenedList, currentChildList){
var childCount = currentChildList.length;
for (var i = 0; i < childCount; i++){
flattenedList.push(currentChildList[i]);
flattenList(flattenedList, currentChildList[i].children());
}
}
this.flattenedList = ko.computed(function(){
var flattenedList = [];
flattenList(flattenedList, self.items());
return flattenedList;
});
아이들이 ItemViewModel
에 의해 정의된다 :
물론 for 루프에 필터를 추가하면 찾고있는 상태의 항목 만 누를 수 있습니다. –