有时我会收到这样的错误:
Uncaught Error: Unable to parse bindings.
Message: ReferenceError: items is not defined;
Bindings value: foreach: items()
我对我目前调试绑定错误的方式非常满意 - 请参阅this answer。
问题是我有时不知道要调试的元素。我在项目的每个地方都使用属性名items()
来处理不同的上下文。
现在,我唯一能找到该元素的方法是在整个项目中搜索foreach: items()
并将其替换为debug: $data
。
有没有办法在抛出后找到元素?
有没有办法让Knockout.js在绑定错误期间抛出元素的xpath?
答案 0 :(得分:0)
根据我的知识,这并不是一个很好的方法,但你可以通过使用命名函数声明让javascript为你工作更多。
所以替换这个:
foreach: items()
有这样的事情:
foreach: function shoppingcartItems(){ return items(); }
或者(如果您想要上下文详细信息)将它们放在您的上下文中:
var someKOContext = {
items: function someKOContextItems(){ return realItems() }
}
var someOtherKOContext = {
items: function someOtherContextItems() { return realItems() }
}
这些技巧应该在一定程度上增强控制台错误消息的可读性,并为您提供更多信息以跟踪您的错误发生的位置(或至少在哪个上下文或html元素)