2017-04-26 64 views
0

如何從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);

+0

閱讀[角服務]的文檔(https://docs.angularjs.org/guide/services)在按鈕 –

+0

添加屬性NG點擊= 「someFunction( '值')」 –

+0

你只應根據您面臨的實際問題提出實際的,可回答的問題。如果您提供可用於重現問題的代碼,您將得到更好的答案。請參見[如何創建最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。 – georgeawg

回答

0

您將需要使用某種指令 - ng-clickng-initng-change等,您將無法訪問角範圍之外,這些裸露的功能。

0

您可以從控制器如下內部稱之爲:

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); 
-1

從你的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

0

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

例如,如果您在視圖中有按鈕,則可以調用在控制器中定義的函數並將其添加到範圍中。

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

你view.html

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

您可以從下面的controller.See內調用該函數,在控制器定義中的最後一行是函數調用。每次調用控制器時它都會調用。

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

$scope.someFunction(); 
});