Передача неизвестной функции в привязке нокаута (foreach) - возможно ли это?

Для простого примера, скажем, это мой ретранслятор:

<ul data-bind="foreach: items">
    <li data-bind="text: property1, attr: { onclick: some_unknown_function }"></li>
</ul>

Я хочу, чтобы тот, кто использует этот код, мог передавать функцию по своему выбору, а НЕ в самой модели, которая будет работать по щелчку - это возможно? Будет ли способ присвоить его модели и установить в качестве привязки клика? Я не могу понять это...

1 ответ

Решение

Выяснил довольно простой способ, иногда я забываю, как буквально JS...

Поменял мой репитер на это:

<ul data-bind="foreach: items">
    <li data-bind="text: property1, click: myClick }"></li>
</ul>

И моя модель к этому:

function Item(options) {
    var self = this;
    options = options || {};

    self.property1 = ko.observable(options.property1 || '');
    self.onclick = options.onclick || null;

    self.myClick = function () {
        if (self.onclick != null) {
            self.onclick()
        }
    }
}
Другие вопросы по тегам