簡體   English   中英

調試:ng-click和不存在的函數

[英]Debugging: ng-click and non-existent functions

在解決問題之前,我有一個元素(在HTML模板中),其中有一個ng-click,它調用了一個不存在的函數。

有沒有辦法啟用嚴格模式(如在JS中使用嚴格)或類似的東西在控制台中看到這種問題?

更新:我也試過$ compileProvider.debugInfoEnabled(true)但沒有成功

簡答:沒有選擇在vanilla AngularJS中做到這一點,但是可以通過hack來完成。

長答案:您在DOM事件處理指令中使用的表達式(例如ng-click,ng-keydown和ng-submit)由Angular的$ parse服務編譯。 您可以在事件指令代碼中看到這發生的位置。 $ parse服務包括它自己的詞法分析器和解析器的實現,它將表達式編譯成JavaScript。

生成的JavaScript有一堆安全檢查來防止事情發生,例如使用未定義函數引發的錯誤。 帶有此代碼的按鈕:

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

最終將為事件處理程序生成JavaScript,它執行類似於此的操作:

if ($scope.handleClick != null) {
    return $scope.handleClick();
} else {
    return undefined;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM