3
this small example을 살펴보십시오.녹아웃 : 배열의 부분 매핑
<select data-bind="options: Days, optionsText: 'title'"></select>
<input type="button" value="update" data-bind="click: update" />
<script type="text/javascript">
var Days = {'Days': [{"id":1,"title":"Monday"},{"id":2,"title":"Tuesday"},{"id":3,"title":"Wensday"}]};
var DaysUpdate = {'Days': [{"id":3,"title":"Wednesday"},{"id":4,"title":"Thursday"},{"id":5,"title":"Friday"}]};
var mapping = {
'Days': {
key: function(data) {
return ko.utils.unwrapObservable(data.id);
}
}}
var viewModel = {
Days: ko.observableArray(),
update: function() {
ko.mapping.fromJS(DaysUpdate, mapping, viewModel);
}
}
ko.mapping.fromJS(Days, mapping, viewModel);
ko.applyBindings(viewModel);
</script>
이 예에서 데이터는 부분적으로 매핑됩니다. 먼저 Days 객체에서 시작하여 DaysUpdate 객체에서 (업데이트 버튼을 클릭하여) 두 번째 업데이트는 배열에서 "Monday"및 "Tuesday"개체를 제거합니다. 어떻게 그 사람들을 머물게합니까?
추신. Mark Robinson에게 감사드립니다.
이 바이올린은 사용자의 문제를 보여줍니다. 다른 SO 사용자가 솔루션을 제공하기 위해이를 사용할 수 있습니다. http://jsfiddle.net/unklefolk/PfFf9/1/ –
좋아요! 바이올린 주셔서 감사. 나는 그 질문에서 그것을 언급 할 것이다. – Dziamid
@Dziamid - 코드에서 작은 오타가 수정되었지만 키가 사용되지 않게하는 '일'매핑 이후에 공간이있었습니다. 그러나 내 대답에는 영향을 미치지 않습니다. – madcapnmckay