모든 것을 따옴표로 묶어서 저장하고 양식에 인용 부호가없는 모든 것을 표시하려는 문제가 있습니다. 내 첫 번째 솔루션은 값을 위해이 작업을 수행하고 텍스트 작업을 수행하는 두 개의 여분의 바인딩 처리기를 만드는 것입니다. 잘 빠져 나간 이스케이프/언 이스케이프 된 Observable 작성하기
ko.bindingHandlers.escapedValue = {
init : function (element, valueAccessor, allBindingsAccessor) {
var $element = $(element),
contentObservable = valueAccessor(),
currentTxt = ko.utils.unwrapObservable(contentObservable);
if (currentTxt) {
$element.val(unescape(currentTxt));
}
$element.change(function (e) {
contentObservable(escape($element.val()));
});
}
};
ko.bindingHandlers.escapedText = {
init : function (element, valueAccessor, allBindingsAccessor) {
var $element = $(element),
contentObservable = valueAccessor(),
currentTxt = ko.utils.unwrapObservable(contentObservable);
if (currentTxt) {
$element.text(unescape(currentTxt));
}
contentObservable.subscribe(function (newValue) {
$element.text(unescape(newValue));
});
}
};
그러나 내가 예를 들어 문자 길이의 값에 대한 몇 가지 유효성 검사를 수행 할 때이 인용 된 문자열의 길이를 확인) 1) 나는 아래로 키 후 더 이상이 라이브 업데이트를하지 않는 나에게 두 가지 문제를 준.
어떻게 내가 가까이 입수 가지고 ko.escapedObservable 같은 것을() 또는 ko.subscribable.fn.escaped()
을 쓸 수 있지만, 캔트 구원의 올바른을받을 것으로 보인다. 이제 제대로 표시하고 제대로 비교를 수행하지만 고토를 저장할 때 값은 여전히
ko.escapedObservable = function (initialValue) {
var observableVal = ko.observable(initialValue),
result = ko.computed({
read: function() {
return unescape(observableVal());
},
write: function (newValue) {
return observableVal(escape(newValue));
}
});
this.toJSON = function() {
return escape(observableVal());
};
return result;
};
==== 편집 ====을 unescped하는 텍스트를 탈출 // 두 개의 관찰 가능한 을 사용하고 Unescape가 솔루션 값
ko.escapedObservable = function (initialValue) {
var observableVal = ko.observable(initialValue),
result = ko.computed({
read: function() {
return observableVal();
},
write: function (newValue) {
observableVal(newValue);
}
});
result.unescaped = ko.computed({
read: function() {
return unescape(observableVal());
},
write: function (newValue) {
observableVal(escape(newValue));
}
});
return result;
};
1 개 필드에 좋은 곳입니다 참으로하지만,이 20, 30, 또는 속성의 이러한 유형의 알 수없는 양을 상상할가 많은 것 어디서나이를 수행 할 수있는 코드. 나는 어떻게 든 escapedObservable() 또는 뭔가를 호출 할 수 있습니다 어떤 녹아웃 관측 건너편 전역에이 작업을 수행 할 싶습니다. – BillPull