Knockout.mapping을 Knockout.validation과 함께 사용하여 간단한 유효 뷰 모델을 만들려고합니다. 나는 create
함수를 가로 질러 ko.mapping
에 왔고 내 요구에 맞을 것이라고 생각했지만 options.parent 속성이 내가 기대하는 것으로 설정되지 않은 것 같습니다 :생성에 전달 된 옵션의 부모가 잘못 되었습니까?
이것은 내가 사용하고있는 기본 코드입니다. JSFiddle을 볼 수 있습니다.
var o = {
test: {
value: "bob",
validation: "{ required: true; }"
}
};
var mapping = {
'value': {
create: function (options) {
console.log(options.parent === o.test);
}
}
};
var vm = ko.mapping.fromJS(o, mapping);
잘못된 것이 있습니까? 아니면 버그입니까? 이 단지 사람이 문제를 해결있는 비교적 간단한 방법으로 생각할 수 깨진 경우
create: function(options) {
var result = ko.mapping.fromJS(options.data);
if(options.parent.validation !== undefined) {
result.extend(options.parent.validation);
}
return result;
}
: 내 궁극적 인 목표는 내가 만들에 다음과 같은 라인을 따라 뭔가를 호출 할 것입니다? 필자가 지금까지 생각해 낸 유일한 해결책은 불필요한 복잡성을 많이 겪는 관측 대상을 수동으로 확장하는 재귀 속성 검색입니다.
시작하기 전에 디버깅을 시도했는데'console.log ('validation :'+ options.parent.validation);''undefined '를 기록했습니다. – Ian
왜냐하면 option.parent가 매핑 되었기 때문입니다 원본 데이터가 아닌 객체입니다. 그리고 선언 된 것과 동일한 순서로 매핑합니다. 유효성 검사 전에 값이 정의됩니다. – Anders
내 피들을 사용해 보셨습니까? –