在解决问题之前,我有一个ng-click元素(在HTML模板内),该元素正在调用不存在的函数。

有没有办法启用严格模式(例如在JS中使用strict)或类似方法以在控制台中看到这种问题?

更新:我也尝试使用$ compileProvider.debugInfoEnabled(true)失败

最佳答案

简答:在 Vanilla AngularJS中没有选择这样做,但是可以通过修改来完成。

详细信息:您在DOM事件处理指令(例如ng-click,ng-keydown和ng-submit)中使用的表达式是由Angular的$parse服务编译的。您可以在code for the event directive内部看到此情况。 $ parse服务包括自己的词法分析器和解析器实现,它们将表达式编译为JavaScript。

生成的JavaScript进行了一系列安全检查,以防止事情发生,例如,由于使用未定义函数而引发的错误。具有以下代码的按钮:

<button ng-click="handleClick()">Click Me!<button>

最终将为事件处理程序生成JavaScript,该事件处理程序执行以下操作:
if ($scope.handleClick != null) {
    return $scope.handleClick();
} else {
    return undefined;
}

关于javascript - 调试:ng-click和不存在的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33691142/

10-12 07:41
查看更多