从Unable获取元素'来解析绑定。 Knockout js中的错误

时间:2013-06-25 16:35:28

标签: knockout.js

有时我会收到这样的错误:

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?

1 个答案:

答案 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元素)