我有一个KnockoutJs和DataTables项目。所有数据都来自服务器端。
我的问题是这样的: 在一列中,我们有一个带有data-bind ="的按钮:click:someFunction" 显然这不会被调用,因为在加载网格之前页面已经绑定了。很公平。在表定义中,我覆盖了" fnDrawCallback"功能并添加此代码
self.addButtonEventsToGridRow(self, $("#tableDomId #buttonId"));
,函数看起来像这样
self.addButtonEventsToGridRow = function (model, element) {
for (var i = 0; i < element.length; i++) {
ko.cleanNode(element[i]);
ko.applyBindings(model, element[i]);
}
};
我必须为每个按钮执行此操作。 (显然这本身就很难看)
"<button type='button' id='buttonId' class='btn btn-primary btn-xs' data-bind='click: someFunction'>ButtonText</button>"
然而,现在事件发生了火灾。我可以证明这个
self.someFunction = function(data) {
console.log(data);
}
这是问题所在。 &#34;数据&#34;传入的对象似乎是整个视图模型,而不是实际的行数据。
我认为我的解决方案本身就是失败,但我找不到合适的方法来实现这一目标。
我愿意修改我的解决方案,或者如果有人能指出我认为合适的方式,我会非常感激。
仅供参考,这是我在#34; render&#34;中解决此问题的UGLY解决方法。过度使用特定列。请注意,如果我
"<button type='button' id='buttonId' class='btn btn-primary btn-xs' data-bind='click: function(){ return someFunction(" + fulldata + ");}'>ButtonText</button>" +