Подтвердить что ты не робот

Knockoutjs - множественные привязки при событии click

Я хотел бы знать, можно ли создать несколько привязок для события в knockout.js

Пример:

<span data-bind="click: function1 function2, attr: {}"></span>
4b9b3361

Ответ 1

Попробуйте использовать

<span data-bind="click: function() { function1(); function2() }"></span>

Ответ 2

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>

Ответ 3

Я пробовал это в своем коде и, похоже, работает:

<button data-bind="click: viewMode.bind($data, 'view'), click: itemUpdate">