저희 웹 사이트의 검색 페이지에 녹아웃 JS를 추가하려고합니다. 현재 jQuery 대화 상자가 열리고 선택할 수있는 조건의 확인란이 여러 개 있습니다.실행 취소 할 수있는 배열을 만드는 방법은 무엇입니까?
여러 유형의 기준이있는 대화 상자가 여러 개 있습니다. 대화 상자를 열 때 "업데이트"버튼을 누르기 전까지는 확인란이 적용되지 않습니다. 취소를 클릭하거나 창을 닫으면 변경 한 내용이 되돌려지고 대화 상자는 이전 상태로 설정됩니다.
나는 this와 몇 개의 다른 게시물을 읽었습니다. 그러나 이것은 ko.observable
에서만 작동하는 것으로 보이며, ko.observableArray
과 함께 작동하지는 않습니다.
누구든지이 작업을 완수했거나 아이디어가 있습니까?
내가하고 싶은 것의 예 :
HTML :
<form>
<div>
<div>
<label><input type="checkbox" data-bind="checked: genders" value="1" />Male</label>
<label><input type="checkbox" data-bind="checked: genders" value="2" />Female</label>
</div>
</div>
<a id="buttonCancel">Cancel</a>
<a id="buttonUpdate">Update</a>
</form>
<div data-bind="text: ko.toJSON(viewModel)"></div>
자바 스크립트 :
//wrapper to an observableArray of primitive types that has commit/reset
ko.observableArrayWithUndo = function(initialArray) {
var _tempValue = ko.observableArray(initialArray.slice(0)),
result = ko.observableArray(initialArray);
//expose temp value for binding
result.temp = _tempValue;
//commit temp value
result.commit = function() {
result(_tempValue.slice(0));
};
//reset temp value
result.reset = function() {
_tempValue(result.slice(0));
};
return result;
};
: 여기
var viewModel = {
genders: ko.observableArrayWithUndo([])
};
ko.applyBindings(viewModel);
$('#buttonCancel').click(function(){
viewModel.genders.resetChange();
});
$('#buttonUpdate').click(function(){
viewModel.genders.commit();
return false;
});
빠른 답변 감사드립니다. 그것이 어떻게 작동되는지 보겠습니다. –