我目前使用應用已經在進行錯誤
scope.onFocus = function(){ // change scope variables
};
elem.bind('focus', function(){
scope.$apply('onFocus()')});
綁定到一個指令的鏈接功能的焦點事件。
問題是如果我像這樣手動激發焦點事件:elem.focus()
在說ng-click處理程序中,我將得到「應用正在進行中」錯誤。
是檢查是否適用一直被稱爲解決方法:if (! scope.$$phase)
?
是它被認爲是「Angularic」打電話申請前檢查?
任何其他優雅的解決方案?
更新:
這裏是我的解決方案:
由於scope.onFocus
可以觸發外部事件(角以外),這反過來又可以叫$apply
,你將有錯誤「已經在進行中適用」。訣竅是分別撥打$apply
。
element.bind('focus', function(){
scope.onFocus();
scope.$apply(); // don't wrap onFocus call in $apply
})
爲什麼要在ng-click中做elem.focus()?爲什麼不''onFocus()'? – joakimbl 2013-05-05 10:20:33
cos不容易訪問scope.onFocus。一切都在角度上是如此孤立 – Lucas 2013-05-06 12:29:46