如何从javascript调用角度函数。 我有一个主控制器具有我想从javascript代码调用的功能。 例如,在我的控制器文件中,我有这样的代码
app.controller('mainCtrl',function($scope,$http){
//some code
$scope.someFunction=function(value){
// Need value to be accessed here
}
});
现在,我的调用功能代码位于 view.html 文件中,底部包含 controller.js 。我简单地称这样的方法。
someFunction(value);
答案 0 :(得分:0)
您需要使用某种指令 - ng-click
,ng-init
,ng-change
等。您无法在Angular范围之外访问这些裸函数。
答案 1 :(得分: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);
答案 2 :(得分: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>
答案 3 :(得分:0)
您可以在控制器中调用该函数。参见下面,控制器定义中的最后一行是函数调用。每次调用控制器时都会调用它。
app.controller('mainCtrl',function($scope,$http){
//some code
$scope.someFunction=function(value){
// Need value to be accessed here
}
$scope.someFunction();
});
答案 4 :(得分:-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
数据。