Ответ 1
Попробуйте использовать
<span data-bind="click: function() { function1(); function2() }"></span>
Я хотел бы знать, можно ли создать несколько привязок для события в knockout.js
Пример:
<span data-bind="click: function1 function2, attr: {}"></span>
Попробуйте использовать
<span data-bind="click: function() { function1(); function2() }"></span>
EDIT: Я случайно использовал MooTools typeOf(), не задумываясь. Фиксированный.
Вот что я придумал. Я признаю, что это слишком много для большинства ситуаций, но синтаксис немного чист на стороне шаблона:
Просмотр модели:
var ViewModel = new function() {
this.call = function(functions,args) {
if (!(functions instanceof Array))
functions = [functions];
if (!(args instanceof Array))
args = [args];
return function() {
for (var i = 0, l = functions.length; i < l; i++) {
functions[i].apply(this,args);
}
}
}
this.testValue=ko.observable('Click me!');
this.click1 = function(foo) {
this.testValue('click1 ' + foo);
alert(1);
}
this.click2 = function(foo) {
this.testValue('click2 ' + foo);
alert(2);
}
}
и шаблон
<span data-bind="click:call([click1,click2],['Test value'])">Test span</span>
Я пробовал это в своем коде и, похоже, работает:
<button data-bind="click: viewMode.bind($data, 'view'), click: itemUpdate">