2016-06-01 55 views
0

我想從jquery調用angular函數,每次我在輸入標記中按Enter。那麼我想滾動到我的頁面底部。我的腳本如下:從jquery腳本調用角函數,並等待它完成

$(document).ready(function() { 
    $(".scroll").keypress(function (e) { 
     if (e.which == 13) { 
      $.when(angular.element($("#myctrl")).scope().someAngularFunction()).done(function(){ 
       $("html, body").delay(2000).animate({ scrollTop: $('.bottomOfPage').offset().top }, 2000); 
      } 
      )} 

    }); 
}); 

此代碼工作, 但是當我刪除延遲滾動不起作用。當然,保持硬編碼的延遲不是一種選擇。

+0

使用NG-KEYUP後 –

+0

是的,那是我最初的初始理念。我使用了ng-keyup =「$ event.keyCode == 13?SendMessageToTheBot():null」,並試圖在退出前滾動該函數,但它不起作用。也許我不會以正確的方式使用它。 – user6315833

回答

0

在的頁面級

if (false || !!document.documentMode) { 
      function CustomEvent() { 
       var event = document.createEvent('HTMLEvents'); 
       event.initEvent('AngularLoaded', true, true); 
       return event; 
      }; 

      // CustomEvent.prototype = window.Event.prototype; 
      document.angularLoaded = CustomEvent(); 
     } 
     else { 
      var event = new Event("AngularLoaded"); 
      document.angularLoaded = event; 
     } 

而當你想使用的角度函數加載它,而不是jQuery的

document.addEventListener('AngularLoaded', function() { 
//your code goes here