[英]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.