, ...
/**
* Knockout binding handler for bootstrapSwitch indicating the status
* of the switch (on/off): https://github.com/nostalgiaz/bootstrap-switch
*/
ko.bindingHandlers.bootstrapSwitchOn = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel) {
$elem = $(element);
$(element).bootstrapSwitch({
onSwitchChange: function (event, state) {
event.preventDefault();
valueAccessor()(state);// Update the model when changed.
return;
}
});
$(element).bootstrapSwitch('state', ko.utils.unwrapObservable(valueAccessor())); // Set intial state
},
update: function (element, valueAccessor, allBindingsAccessor, viewModel) {
var vStatus = $(element).bootstrapSwitch('state');
var vmStatus = ko.utils.unwrapObservable(valueAccessor());
if (vStatus != vmStatus) {
$(element).bootstrapSwitch('state', vmStatus);
}
}
};
가장 먼저하는 일 : 청소기 방법
ko.bindingHandlers.bootstrapSwitch = {
init: function (element, valueAccessor, allBindingsAccessor) {
//initialize bootstrapSwitch
$(element).bootstrapSwitch();
// setting initial value
$(element).bootstrapSwitch('state', valueAccessor()());
//handle the field changing
$(element).on('switchChange.bootstrapSwitch', function (event, state) {
var observable = valueAccessor();
observable(state);
});
// Adding component options
var options = allBindingsAccessor().bootstrapSwitchOptions || {};
for (var property in options) {
$(element).bootstrapSwitch(property, ko.utils.unwrapObservable(options[property]));
}
//handle disposal (if KO removes by the template binding)
ko.utils.domNodeDisposal.addDisposeCallback(element, function() {
$(element).bootstrapSwitch("destroy");
});
},
//update the control when the view model changes
update: function (element, valueAccessor, allBindingsAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor());
// Adding component options
var options = allBindingsAccessor().bootstrapSwitchOptions || {};
for (var property in options) {
$(element).bootstrapSwitch(property, ko.utils.unwrapObservable(options[property]));
}
$(element).bootstrapSwitch("state", value);
}
};
의례에 부트 스트랩 스위치 옵션 및 템플릿 바인딩을 처리 할 것 같다 가장 눈에 띄는 것은 onSwitchChange
함수를 options
개체의 일부로 전달하는 것입니다. 하지만, 그 외에 다른 작은 편집을 theres ...
나는 그것이 더 의미가 있습니다. 그래서 바인딩 처리기는'var model = new ViewModel (modeldata);에 의해 내 관측 가능 객체에 연결되고 인스턴스화 될 수 있습니까? –
나는이 바이올린을 http : // jsfiddle라고 생각한다.net/MBLP9/29 /는 필자가 필요로 할 것이며, 함수 모델로 작업 할 업데이트를 얻을 수있었습니다. –
또한 github/nuget의 파일은 해당 바이올린에 사용 된 파일과 다릅니다. –