在淘汰赛中传递未知功能(foreach) - 是否可能?

时间:2016-12-15 20:33:17

标签: javascript knockout.js knockout-3.0 knockout-binding-handlers

举一个简单的例子,假设这是我的转发器:

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

我希望使用此代码的人能够传递他们选择的功能,而不是在运行onclick的模型本身 - 这可能吗?是否有办法将其分配给模型并将其设置为点击绑定?我似乎无法弄清楚这一点......

1 个答案:

答案 0 :(得分:0)

想出一个非常简单的方法,有时我会忘记文字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()
        }
    }
}