我有一个自定义绑定,是在How to refresh Footable that is bound with Knockout?的帮助下创建的。
我有一个页面,首次加载页面时不会调用绑定,但是如果我刷新页面则会调用它。 (按F5)对于我拥有的所有其他页面,绑定工作按预期进行,并且我从未在其他任何地方看到此行为。
到目前为止我已经注意到了:
我试图创建一个Plunk来证明这一点,但我没有运气。 (意思是,每当我尝试简化场景时,它总是有效)
这里是html的样子:(数据绑定在两种情况下看起来都一样)
<tbody data-bind="footable: items">
<tr class="footable-even" style="display: table-row;">
<td class="footable-visible footable-first-column"><span class="footable-toggle"></span></td>
<td class="footable-visible"></td>
<td class="footable-visible"></td>
<td class="footable-visible footable-last-column"></td>
</tr>
</tbody>
我正在使用只有一行的结果集进行测试。
那么,什么会导致绑定不被调用?我还能在哪里找点断点来看看发生了什么?
答案 0 :(得分:0)
在knockout-3.1.0.debug.js中,我能够追踪到这段代码:(第2455行)
ko['getBindingHandler'] = function(bindingKey) {
return ko.bindingHandlers[bindingKey];
};
在页面不起作用的时候,尚未加载自定义绑定,因此该函数返回undefined。 (因为它应该)所以问题不在于淘汰赛,而在于执行的顺序。
现在要弄清楚为什么加载这个自定义绑定的时间对于这一页不同而不是其他任何一个......