0

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

Uncaught Error: Unable to parse bindings.
Message: ReferenceError: items is not defined;
Bindings value: foreach: items() 

我对当前调试绑定错误的方式非常满意 - 请参阅此答案

问题是我有时不知道要调试什么元素。我在项目中的任何地方都使用属性items()名称来处理不同的上下文。

现在,我唯一能找到该元素的就是在整个项目中搜索foreach: items()并将其替换为debug: $data.

有没有办法在投掷后找到元素?

有没有办法让 Knockout.js 在绑定错误期间抛出元素的 xpath?

4

1 回答 1

0

据我所知,没有一个很好的方法可以做到这一点,但是您可以通过使用命名函数声明让 javascript 为您工作更多。

所以替换这个:

foreach: items()

像这样:

foreach: function shoppingcartItems(){ return items(); }

或者(如果您想要上下文详细信息)将它们放在您的上下文中:

var someKOContext = {

   items: function someKOContextItems(){ return realItems() }

}

var someOtherKOContext = {

  items: function someOtherContextItems() { return realItems() }

}

这些技巧应该会在一定程度上增强控制台错误消息的可读性,并为您提供更多信息来追踪错误发生的位置(或至少从哪个上下文开始,或 html 元素)

于 2013-06-25T17:08:44.103 回答