【问题标题】:Passing an unknown function in a knockout binding (foreach) - is it possible?在淘汰赛绑定(foreach)中传递未知函数 - 有可能吗?
【发布时间】:2017-05-01 13:41:31
【问题描述】:
举个简单的例子,假设这是我的中继器:
<ul data-bind="foreach: items">
<li data-bind="text: property1, attr: { onclick: some_unknown_function }"></li>
</ul>
我希望使用此代码的任何人都能够传递他们选择的函数,而不是在将运行 onclick 的模型本身中传递 - 这可能吗?有没有办法将它分配给模型并将其设置为点击绑定?这个我好像搞不懂……
【问题讨论】:
标签:
javascript
knockout.js
knockout-3.0
knockout-binding-handlers
【解决方案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()
}
}
}