【发布时间】:2014-08-02 20:43:48
【问题描述】:
我知道使用$log 而不是console.log 是角度的最佳做法。
但是,我找不到解释原因的好文档。为什么开发者应该使用$log?
【问题讨论】:
我知道使用$log 而不是console.log 是角度的最佳做法。
但是,我找不到解释原因的好文档。为什么开发者应该使用$log?
【问题讨论】:
$log 首先检查浏览器是否支持console.log(例如,IE 8 不支持)。这可以防止在 IE 8 上显示错误。注意:这并不意味着它会在 IE 8 上记录任何内容,它只是意味着它不会抛出错误。
除此之外,如果您愿意,它还允许您 decorate 和模拟 $log 用于扩展和测试目的。例如,您可以装饰它以记录到数组以支持 IE 8。
一个额外的功能:如果你传递一个 JavaScript Error 实例,它会尝试很好地格式化它。这可以通过阅读source code找到。
编辑: “并不是 IE 8 不支持 console.log。它只是在开发工具打开之前不会创建控制台对象。”有关详细信息,请参阅下面的 cmets。
【讨论】:
console.log。在打开开发工具之前,它不会创建 console 对象。只要开发工具打开,console.log 就在 IE 8 中受支持。请参阅this 问题作为参考...
只是为了完成@Steve's answer(这是正确的),$log 还具有被关闭的优势。使用此代码,您可以禁用来自 $log 的日志记录:
app.config(function($logProvider) {
$logProvider.debugEnabled(true);
});
如果您想一次禁用所有日志,而不是手动逐行删除它们,这将非常方便。
【讨论】: