2012-08-09 3 views
4

나는이 형식으로 자바 스크립트 배열을 :Knockoutjs 랩핑 해제 ko.observableArray 재귀

omega.franchiseInfo.rawdata = [{ 
       Id: "Main", 
       Title: "Main", 
       Type: "main", 
       items: [{ 
        Id: "Menu1", 
        Title: "Menu1", 
        Type: "menu", 
        items: [{ 
         Id: "Menu1", 
         Title: "Menu1", 
         Type: "menu", 
         items: [] 
        }] 
       }] 
      }]; 

모든 항목은 다른 항목을 포함하는 배열 속성 항목이 있습니다. 배열의 요소 수는 지정되지 않습니다.

배열에서 녹아웃 매핑 플러그인을 사용하여 observableArray로 만듭니다. 그리고 배열의 모든 구성원도 관찰 대상이됩니다. 내가 달성하고 싶다 무엇

omega.franchiseInfo.observableRawData = ko.mapping.fromJS(language.rawdata); 

원래 순수 자바 스크립트 형식으로되기 위해 omega.franchiseInfo.observableRawData 랩을 해제 한 후입니다. 이는 omega.franchiseInfo.rawdata과 같음을 의미합니다. ko.utils.unwrapObservable처럼 녹아웃에 방법이 있지만 자바 스크립트가 내 강한 측면이 아니라는 것을 알고 내 경우에는 작동하지 않을 수 있습니다. 또한 작업을 수행 할 함수는 배열의 모든 항목을 검토하는 재귀 적이어야한다고 생각합니다. 누군가가 나에게 도움이 작동하는 코드를 제공 할 수 있는지

http://jsfiddle.net/KHFn8/931/

나는 매우 greatfull 될 것입니다 :

여기 내 바이올린입니다. 시간과 노력에 감사드립니다.

답변

11

JsFiddle

은이 같은 자바 스크립트 객체로 다시 변환 할 수 있습니다

ko.toJS (omega.franchiseInfo.observableRawData);

+0

고맙습니다. – Mdb