【问题标题】:Get element 'from Unable to parse bindings.' error in Knockout js获取元素“无法解析绑定”。淘汰赛js中的错误
【发布时间】:2013-06-22 13:46:30
【问题描述】:

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

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?

【问题讨论】:

    标签: knockout.js


    【解决方案1】:

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

    所以替换这个:

    foreach: items()
    

    类似这样的:

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

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

    var someKOContext = {
    
       items: function someKOContextItems(){ return realItems() }
    
    }
    
    var someOtherKOContext = {
    
      items: function someOtherContextItems() { return realItems() }
    
    }
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-03
      • 1970-01-01
      • 2014-02-27
      • 1970-01-01
      • 1970-01-01
      • 2013-08-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多