2014-02-14 4 views
0

Я пытаюсь спросить пользователя для подтверждения, когда он нажимает что-то переплетены с knockoutjs (с помощью данных-привязки = "нажмите: ..)Нажмите предобработки с knockoutjs

я нашел что-то назвал предварительную обработку, но я не сделал . сделать его работу Вот мой не рабочий раствор

ko.bindingHandlers.click.preprocess = function(val) { 
    confirm("Are you sure do you want to click that?"); 
} 

ссылка:. JSFiddle

PS Посмотрите пример nr.2 на этом LINK

ответ

1

Для вызова функции, которые вы добавляете data-bind="click: ..." связывания и выполнения любой другой код, вы могли бы использовать что-то вроде этого:

ko.bindingHandlers.click.preprocess = function (value) { 
    return 'function() { console.log("Preprocess Click!"); ' + value + '(); }' 
}; 

Все, что возвращаемый preprocess вставленным data-bind="click: ...", поэтому, если вы напишете data-bind="click: Click" после препроцесса, будет преобразовано в: data-bind="click: function() { console.log('Preprocess Click!'); Click(); }".

0

Вы не последовали пример правильно, обратите внимание, что пример возвращает функцию в виде строки:

ko.bindingHandlers.click.preprocess = function(val) { 
    return 'function(){ console.log(123); }' 
} 

Я отредактировал Fiddle, чтобы показать, что работает

Смежные вопросы