녹아웃/breeze를 사용하여 프로젝트를 개발합니다.관찰 대상을 변경된 것으로 표시하도록 강제 녹아웃
녹아웃을 변경하여 관찰 가능을 표시 할 수 있는지 알고 싶습니다 (포커스가 필드에 있더라도). 나의 부하는 그가 날짜를 변경하기 시작할 때마다 버튼을 저장하는 기능이 있음을 사용자에게 알려주는 역할을합니다. 예를 들어 날짜가있는 입력 필드가 있습니다. 사용자가이 필드에서 날짜를 편집하기 시작합니다. 관찰 가능 항목은 사용자가 필드의 포커스를 벗어날 때만 새 인코딩 날짜를 해석해야합니다. 하지만 입력란에 무언가를 입력하자마자 내 Save button
을 보여주고 싶습니다. 나는 분명히 희망한다.
ko.bindingHandlers.dateRW = {
//dateRW --> the 'read-write' version used both for displaying & updating dates
init: function (element, valueAccessor, allBindingsAccessor) {
var observable = valueAccessor();
var value = ko.utils.unwrapObservable(valueAccessor);
//handle the field changing
ko.utils.registerEventHandler(element, "change", function() {
var myDate = moment($(element).val(), "DD/MM/YYYY");
observable(myDate.toDate());
});
//ko.utils.registerEventHandler(element, "keyup", function() {
// As soon as user begin to type something, I would like to show my save button
//});
},
update: function (element, valueAccessor, allBindingsAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor());
var date = (typeof value !== 'undefined') ? moment(value) : null;
var dateFormatted = (date != null) ? date.format('DD/MM/YYYY') : '';
$(element).val(dateFormatted);
}
};
그리고 내보기 : 나는 정의 bindingHandlers을 사용하고 있기 때문에
<input type="text" data-bind="dateRW: myDate" />
불행하게도 valueUpdate: 'afterkeydown'
작동하지 않습니다
여기 내 입력에 편집 날짜를 돌보는 내 bindingHandlers입니다.
누군가가 올바른 방향으로 나를 가리킬 수 있기를 바랍니다.
감사합니다.
나는 그것을 시도하지만 난 항상 오류가 발생했습니다 : ovservable이 방법이 없습니다. 왜 그런가? – Bronzato
위의 제안 사항을 추가했습니다. – Brendan