0

我正在寻找调试backbone.js 的一些指导。我正在关注 Daily.js 主干教程,并在第 9 周后遇到了错误(http://dailyjs.com/2013/01/24/backbone-tutorial-9/)。

这是我的错误

[22:47:29.339]“调用请求执行”
[22:47:29.423] GET http://localhost:8080/img/glyphicons-halflings.png [HTTP/1.1 304 未修改 1ms]
[22:47:29.424] POST https://content.googleapis.com/rpc?key=xxxxxxx [HTTP/1.1 200 OK 168ms]
[22:47:29.546] ReferenceError: id is not defined @ http://localhost:8080/js/lib/underscore.js:1209
[22:47:29.543]“看涨期权成功”

这是带有相应控制台日志记录调用的代码:

  Backbone.gapiRequest = 函数(请求、方法、模型、选项){
    变量结果;
    console.log("调用请求执行")
    request.execute(函数(res){
      如果(res.error){
        if (options.error) options.error(res);
      } else if (options.success) {
        如果(res.items){
          结果 = res.items;
        } 别的 {
          结果=水库;
        }
        console.log("调用选项成功");
        options.success(模型,结果,请求);
      }
      console.log("gapiRequest")
    });
  };

事情正在让我眼前一亮:

  1. 为什么没有显示最后一个日志(gapiRequest)。
  2. 为什么错误发生在两个控制台日志之间,即使代码中没有任何内容涉及 id 或据我所知,任何外部库。

如果有人知道可能发生的事情会很棒,那么任何有关如何调试它的信息也将非常好。可以在当前的 Web 浏览器中生成堆栈跟踪吗?

TIA,马特

4

1 回答 1

2
  1. 如果您查看时间戳,您的脚本已崩溃:

    [22:47:29.546] ReferenceError: id is not defined @ http://localhost:8080/js/lib/underscore.js:1209
    [22:47:29.543] "calling options success"
    

    你会看到"calling options success"之前发生的事情ReferenceError。这意味着您的客户收到了结果,但您的脚本在渲染模板时崩溃了(我猜),可能是因为:

  2. 根据发生异常的库(underscore.js)判断,您可能id在下划线模板中的某处引用。在您的模板文件中查找类似<%= id%>的内容。<% id%>

于 2013-09-30T10:31:10.347 回答