Mat*_*Mat 15 javascript angularjs
在解决问题之前,我有一个元素(在HTML模板中),其中有一个ng-click,它调用了一个不存在的函数.
有没有办法启用严格模式(如在JS中使用严格)或类似的东西在控制台中看到这种问题?
更新:我也试过$ compileProvider.debugInfoEnabled(true)但没有成功
小智 8
简答:没有选择在vanilla AngularJS中做到这一点,但是可以通过hack来完成.
长答案:您在DOM事件处理指令中使用的表达式(例如ng-click,ng-keydown和ng-submit)由Angular的$ parse服务编译.您可以在事件指令的代码中看到这发生的位置.$ parse服务包括它自己的词法分析器和解析器的实现,它将表达式编译成JavaScript.
生成的JavaScript有一堆安全检查来防止事情发生,例如使用未定义函数引发的错误.带有此代码的按钮:
<button ng-click="handleClick()">Click Me!<button>
Run Code Online (Sandbox Code Playgroud)
最终将为事件处理程序生成JavaScript,它执行类似于此的操作:
if ($scope.handleClick != null) {
return $scope.handleClick();
} else {
return undefined;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
525 次 |
| 最近记录: |