我是Angular的新手,非常感謝。我正在製作一個具有不同區域的應用程序,我們稱之爲網頁(儘管它確實是一個1頁的應用程序),對此我自然使用不同的視圖,並且我有一個與正文,樣式和腳本等共同的佈局。角度按鍵事件的問題
我遇到了一個問題,我只想在應用程序的其中一個頁面中監聽鍵盤事件,而這些頁面應該是互動的,而其他的則是管理員。我可以將鍵盤事件綁定到輸入或文檔或主體。輸入不適合,我的文檔和正文是全球性的,我不想在我的應用程序中聽每一個按鍵。
我該怎麼做才能解決Angular的這個問題?
我的代碼是在這裏:https://github.com/mgenev/geminiFc/blob/master/public/js/controllers/practice.js
我被騙了與jQuery和綁定的事件,身在控制器爲特定頁面,但角度不一樣的反應事件發生。
$('body').keydown(function(e) {
$scope.changeIndex(e);
});
然後我讀了我必須使用$ scope。$ apply();我在事件觸發的changeIndex函數底部做了這些事情。
這實際工作,但是當我打電話changeIndex通過點擊事件是控制我的用戶界面的替代方式
<div class="practice-controls-bottom">
<i ng-click="changeIndex('down');" class="icon-thumbs-down icon-4x thumbs-down"></i>
<i ng-click="changeIndex('up');" class="icon-thumbs-up icon-4x thumbs-up pull-right"></i>
</div>
角給我一個錯誤:
Error: $apply already in progress
at Error (<anonymous>)
at g (http://localhost:3000/lib/angular/angular.min.js:85:37)
at Object.e.$apply (http://localhost:3000/lib/angular/angular.min.js:89:129)
at Object.$scope.changeIndex (http://localhost:3000/js/controllers/practice.js:173:20)
展望一些忠告。謝謝!
感謝這個作品! – mobetta
你最後的代碼塊是你檢查一個摘要循環是否運行像一個魅力。儘管小錯字:'$ scope。$ apply()' –