[英]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-click
, ng-init
, ng-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.