调试Ember.js错误:加载路由时出错

调试Ember.js错误:加载路由时出错,ember.js,Ember.js,虽然在任何特定情况下,都有关于如何调试错误的提示和线索,但我还没有找到一个通用的余烬策略。 例如,加载路由时出现类型错误: 断言失败:加载路由时出错:TypeError:“undefined”不是对象(评估“window.router.lander”)(忽略我试图访问window.router.lander的事实。这与此无关) 当这个错误发生时,为什么Ember不告诉您它正在加载哪个路由?或者它是发生在afterModel()中,还是发生在activate()中?找到这种上下文信息的一般策略是什

虽然在任何特定情况下,都有关于如何调试错误的提示和线索,但我还没有找到一个通用的余烬策略。
例如,加载路由时出现类型错误:
断言失败:加载路由时出错:TypeError:“undefined”不是对象(评估“window.router.lander”)
(忽略我试图访问window.router.lander的事实。这与此无关)

当这个错误发生时,为什么Ember不告诉您它正在加载哪个路由?或者它是发生在afterModel()中,还是发生在activate()中?找到这种上下文信息的一般策略是什么

到目前为止,我所能做的就是添加一堆分散的console.log。例如,上面的错误:
1) 在我的代码中查找所有出现的window.router.lander
2) 在第一次出现之前,添加一个console.log(“它是第一次出现吗?”),在第一次出现之后,添加一个console.log(“它不是第一次出现”)
3) 对每一次事件都做同样的处理
4) 刷新。“it it the nth occurrence”(是第n次出现吗)中的一个不会有更接近的结果,现在您知道错误发生在哪里了。

Ember在模型挂钩中出现错误或返回承诺时没有特别的帮助。我肯定我在其中一个问题上读过(或者我不确定)这是一个他们正在处理的公开问题

我所做的是使用Chrome开发者工具来调试这个问题(而不仅仅是控制台日志)。根据我的经验,通常是:

  • 你不能在模型钩子里归还任何东西
  • 模型钩子返回的promise上的
    then
    函数之一内部出现错误

  • 我希望它能帮助你

    当涉及到模型钩子中的错误或它返回的承诺时,Ember并没有特别的帮助。我肯定我在其中一个问题上读过(或者我不确定)这是一个他们正在处理的公开问题

    我所做的是使用Chrome开发者工具来调试这个问题(而不仅仅是控制台日志)。根据我的经验,通常是:

  • 你不能在模型钩子里归还任何东西
  • 模型钩子返回的promise上的
    then
    函数之一内部出现错误

  • 我希望它能帮助你

    当涉及到模型钩子中的错误或它返回的承诺时,Ember并没有特别的帮助。我肯定我在其中一个问题上读过(或者我不确定)这是一个他们正在处理的公开问题

    我所做的是使用Chrome开发者工具来调试这个问题(而不仅仅是控制台日志)。根据我的经验,通常是:

  • 你不能在模型钩子里归还任何东西
  • 模型钩子返回的promise上的
    then
    函数之一内部出现错误

  • 我希望它能帮助你

    当涉及到模型钩子中的错误或它返回的承诺时,Ember并没有特别的帮助。我肯定我在其中一个问题上读过(或者我不确定)这是一个他们正在处理的公开问题

    我所做的是使用Chrome开发者工具来调试这个问题(而不仅仅是控制台日志)。根据我的经验,通常是:

  • 你不能在模型钩子里归还任何东西
  • 模型钩子返回的promise上的
    then
    函数之一内部出现错误

  • 我希望它能帮助你

    为了更好地调试,您可以通过使用
    LOG\u transitions
    和/或
    LOG\u transitions\u INTERNAL
    属性创建应用程序来启用转换日志记录:

    window.App = Ember.Application.create({
      // Basic logging, e.g. "Transitioned into 'post'"
      LOG_TRANSITIONS: true, 
    
      // Extremely detailed logging, highlighting every internal
      // step made while transitioning into a route, including
      // `beforeModel`, `model`, and `afterModel` hooks, and
      // information about redirects and aborted transitions
      LOG_TRANSITIONS_INTERNAL: true
    });
    
    参考:

    此外,您还可以使用canary build,它提供了详细的错误堆栈:

    为了更好地调试,您可以通过使用
    LOG\u transitions
    和/或
    LOG\u transitions\u INTERNAL
    属性创建应用程序来启用转换日志记录:

    window.App = Ember.Application.create({
      // Basic logging, e.g. "Transitioned into 'post'"
      LOG_TRANSITIONS: true, 
    
      // Extremely detailed logging, highlighting every internal
      // step made while transitioning into a route, including
      // `beforeModel`, `model`, and `afterModel` hooks, and
      // information about redirects and aborted transitions
      LOG_TRANSITIONS_INTERNAL: true
    });
    
    参考:

    此外,您还可以使用canary build,它提供了详细的错误堆栈:

    为了更好地调试,您可以通过使用
    LOG\u transitions
    和/或
    LOG\u transitions\u INTERNAL
    属性创建应用程序来启用转换日志记录:

    window.App = Ember.Application.create({
      // Basic logging, e.g. "Transitioned into 'post'"
      LOG_TRANSITIONS: true, 
    
      // Extremely detailed logging, highlighting every internal
      // step made while transitioning into a route, including
      // `beforeModel`, `model`, and `afterModel` hooks, and
      // information about redirects and aborted transitions
      LOG_TRANSITIONS_INTERNAL: true
    });
    
    参考:

    此外,您还可以使用canary build,它提供了详细的错误堆栈:

    为了更好地调试,您可以通过使用
    LOG\u transitions
    和/或
    LOG\u transitions\u INTERNAL
    属性创建应用程序来启用转换日志记录:

    window.App = Ember.Application.create({
      // Basic logging, e.g. "Transitioned into 'post'"
      LOG_TRANSITIONS: true, 
    
      // Extremely detailed logging, highlighting every internal
      // step made while transitioning into a route, including
      // `beforeModel`, `model`, and `afterModel` hooks, and
      // information about redirects and aborted transitions
      LOG_TRANSITIONS_INTERNAL: true
    });
    
    参考:

    此外,您还可以使用canary build,它提供了详细的错误堆栈:

    所以我完成了对这个问题的跟踪,它实际上是在
    激活
    钩子中——这正是我所说的!没办法知道发生了什么。谢谢你的回答。你能把这个问题贴在一张纸上吗?我不是在寻求帮助解决这个问题,我现在已经解决了。我可以用“虫子”组合一把小提琴,我们可以讨论找到它的最佳方法?是的!我想看看这个问题。PS:使用调试器仍然是一个好主意,对吗?所以我完成了对这个问题的跟踪,它实际上是在
    activate
    hook中——这正是我所说的!没办法知道发生了什么。谢谢你的回答。你能把这个问题贴在一张纸上吗?我不是在寻求帮助解决这个问题,我现在已经解决了。我可以用“虫子”组合一把小提琴,我们可以讨论找到它的最佳方法?是的!我想看看这个问题。PS:使用调试器仍然是一个好主意,对吗?所以我完成了对这个问题的跟踪,它实际上是在
    activate
    hook中——这正是我所说的!没办法知道发生了什么。谢谢你的回答。你能把这个问题贴在一张纸上吗?我不是在寻求帮助解决这个问题,我现在已经解决了。我可以用“虫子”组合一把小提琴,我们可以讨论找到它的最佳方法?是的!我想看看这个问题。PS:使用调试器仍然是一个好主意,对吗?所以我完成了对这个问题的跟踪,它实际上在
    激活中