簡體   English   中英

如何從JavaScript調用角度范圍函數?

[英]How to call angular scope function from javascript?

我該如何從javascript中調用一些函數。 我有一個具有要從javascript代碼調用的功能的主控制器。 例如,在我的控制器文件中,我有這樣的代碼

app.controller('mainCtrl',function($scope,$http){
     //some code
     $scope.someFunction=function(value){
        // Need value to be accessed here
     } 
});

現在,我用於調用函數的代碼在view.html文件中,並且最下面的im包括controller.js 我只是簡單地這樣調用方法。 someFunction(value);

您將需要使用某種指令ng-clickng-initng-change等。您無法在Angular范圍之外訪問這些裸函數。

您可以從控制器內部調用它,如下所示:

app.controller('mainCtrl',function($scope,$http){
     //some code
     $scope.someFunction=function(value){
        // Need value to be accessed here
     } 

     $scope.someFunction(34); 
});

如果需要從另一個控制器調用它,則可以傳遞一個事件

// In your controller
$scope.$on('myEvent', function(event, arg) {
     $scope.someFunction(arg);
});

....

// From the second controller
$scope.emit('myEvent', 34);

您可以使用角度指令從視圖中調用控制器。

例如,如果視圖中有一個按鈕,則可以調用在控制器中定義並添加到作用域的函數。

app.controller('mainCtrl',function($scope){
     //some code
     $scope.someFunction=function(value){
        console.log('hello ' + value);
     } 
});

您的view.html

<a ng-click="someFunction('world')">Call</a>

您可以從控制器內部調用函數。參見下文,控制器定義的最后一行是函數調用。 每當調用控制器時,它將調用。

app.controller('mainCtrl',function($scope,$http){
     //some code
     $scope.someFunction=function(value){
        // Need value to be accessed here
     } 

$scope.someFunction();
});

頁面加載完成后,必須從HTML頁面內部執行JavaScript。

<script type="application/javascript">
     document.addEventListener("DOMContentLoaded", function(event) { 
       //do work
     });
</script>

一旦有了,就需要使用應用程序名稱來獲取Angular模塊。

<script type="application/javascript">
     document.addEventListener("DOMContentLoaded", function(event) { 
        var app = angular.module('myApp');
     });
</script>

擁有模塊后,您可以執行運行操作,該操作將允許您注入工廠,服務和常量。 諸如控制器,指令和組件之類的內容僅供HTML使用。

<script type="application/javascript">
     document.addEventListener("DOMContentLoaded", function(event) { 
        var app = angular.module('myApp');
        app.run(['myService', function(myService) {
             // do your stuff here.
        });
     });
</script>

現在,您還可以通過將myService注入到控制器中來在HTML頁面和控制器之間共享myService數據。

暫無
暫無

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

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