2015-07-03 69 views
12

我有以下的JavaScript函數如何在AngularJS控制器中調用javascript函數?

<script type="text/javascript"> 
    function ShowProgress() { 
     var modal = $('<div />'); 
     modal.addClass("spinmodal"); 
     $('body').append(modal); 
     var loading = $(".loading"); 
     loading.show(); 
     var top = Math.max($(window).height()/2 - loading[0].offsetHeight/2, 0); 
     var left = Math.max($(window).width()/2 - loading[0].offsetWidth/2, 0); 
     loading.css({ top: top, left: left }); 
    } 

    function HideProgress() { 
     var loading = $(".loading"); 
     loading.hide(); 
     $(".spinmodal").remove(); 
    } 
</script> 

現在我要調用此ShowProgress()HideProgress()在角控制器。我希望一旦調用deletePrepared並且HideProgress()低於GetAllPrepared,請致電ShowProgress()

<script type="text/javascript"> 
    app.controller("myCntrl", function ($scope, angularService, $modal) { 

     $scope.deletePrepared = function (itm) { 
      var getData = angularService.DeletePrepared(itm.ProductId); 
      getData.then(function (msg) { 
       GetAllPrepared(); 
      }, function() { 
       alert('Error in Deleting Record'); 
      }); 
     } 

    }); 
</script> 
+1

只是調用這些方法,看看發生了什麼 –

+1

dom操作最好在指令而不是控制器中完成。 – geckob

回答

21

簡單地調用這些方法:

app.controller("myCntrl", function ($scope, angularService, $modal) { 

    $scope.deletePrepared = function (itm) { 
     ShowProgress(); 

     var getData = angularService.DeletePrepared(itm.ProductId); 
     getData.then(function (msg) { 
      HideProgress(); 
      GetAllPrepared(); 
     }, function() { 
      alert('Error in Deleting Record'); 
     }); 
    } 

}); 

提示:使用角度指令做DOM操作,你不需要對DOM操作任何jQuery代碼,角就足夠了吧。

相關問題