2012-08-06 4 views
1

은 내가 컬렉션에서 항목을 제거하는 기능을 추가 배열의 무언가를 만들 때이녹아웃 매핑 및 부모 옵션

{ items: [ 
    { id: 1 }, 
    { id: 2 }, 
    { id: 3 } 
]}; 

매핑 트링하고있다. 나는 항목이 items.mappedCreate를 사용하지만, ko.mapping.fromJS에 매핑 된 항목과 작업을하지는 추가 제거하고 경우

var mapping = { 
    'items': { 
     key: function(data) { 
      return ko.utils.unwrapObservable(data.id); 
     }, 
     create: function(options) { 
      var o = (new(function() { 
       this._remove = function() { 
        options.parent.items.mappedRemove(options.data); 
       }; 
       ko.mapping.fromJS(options.data, {}, this); 
      })()); 
      return o; 
     } 
    } 
}; 

이 방법은 작동합니다.

디버깅 할 때 나는 options.parent가 다른 상황에서 같지 않다는 것을 알아 차렸다. 왜? 두 메소드 모두 parent로 items observableArray를 반환해야합니까?

예 : http://jsfiddle.net/fampinheiro/9CcME/으로 jsfiddle을 설정했습니다.

답변