2014-06-20 3 views
1

KnockoutJS '매핑 플러그인에서 toJS를 사용할 때 중첩 된 속성을 무시할 수 있습니까?KnockoutJS 매핑 toJS 중첩 된 키를 무시합니다.

예 :

var obj = { 
    "akey": { 
     "anestedkey": "ignore", 
     "anotherkey": "value" 
    } 
}; 

console.log(ko.mapping.toJS(obj, { 
    "ignore": ["akey.anestedkey"], 
})); 

예상 출력된다

{ 
    akey: { 
     anotherkey: "value" 
    } 
} 

실제 출력이다

{ 
    akey: { 
     anestedkey: "ignore" 
     anotherkey: "value" 
    } 
} 

JSFiddle : http://jsfiddle.net/48KVU/

답변

3

당신이 부모를 제거하면 의미가 있습니다 (당신이 당신의 키를 OBJ에서 고유 또는 알고있는 경우 모든 발행 수를 제거 할 경우) :

var obj = { 
    "akey": { 
     "anestedkey": "ignore", 
     "anotherkey": "value" 
    } 
}; 

console.log(ko.mapping.toJS(obj, { 
    "ignore": ["anestedkey"], //here 
})); 

http://jsfiddle.net/GabrielTran/48KVU/1/

+0

허, 나는 결코 그것에 대해 생각하지 않았을 것이다. 정말 고맙습니다! – Esben

+0

@Esben 나는'create' 옵션과 같은 것을 사용했습니다 :) –

1

내가 아는 한 매핑 할 때만 옵션을 제공 할 수 있습니다. toJStoJSON은 매핑 해제에 사용됩니다. 중첩 된 키를 사용하여

잘 작동 할 때 매핑 :

var obj = { 
    "akey": { 
     "anestedkey": "ignore", 
     "anotherkey": "value" 
    } 
}; 

console.log(ko.mapping.fromJS(obj, { 
    "ignore": ["akey.anestedkey"], 
})); 

http://jsfiddle.net/sjroesink/Sg5KK/

+0

나는 꽤 확신 옵션은 반대 방향에서도 작동해야합니다. 최소 무시, 복사 등은 최상위 수준에서 작동합니다. 즉, 무시 : [ "akey"]는 매핑 해제 할 때 작동합니다. – Esben