May*_*yur 12 javascript jquery angularjs
我是新手使用角度js,我已经声明了许多控制器,现在我想将一个控制器的功能用于另一个控制器.这是我的示例代码.
app.controller('Controller1',function($scope,$http,$compile){
$scope.test1=function($scope)
{
alert("test1");
}
});
app.controller('Controller2',function($scope,$http,$compile){
$scope.test2=function($scope)
{
alert("test1");
}
});
app.controller('Controller3',function($scope,$http,$compile){
///
});
Run Code Online (Sandbox Code Playgroud)
现在我想在controller3中调用test2函数.任何人都可以帮助..感谢Avance ... :)
小智 13
您无法从控制器内的控制器调用方法.您需要提取方法,创建服务并调用它.这也将使代码彼此分离并使其更易于测试
(function() {
angular.module('app', [])
.service('svc', function() {
var svc = {};
svc.method = function() {
alert(1);
}
return svc;
})
.controller('ctrl', [
'$scope', 'svc', function($scope, svc) {
svc.method();
}
]);
})();
Run Code Online (Sandbox Code Playgroud)
示例:http://plnkr.co/edit/FQnthYpxgxAiIJYa69hu?p = preview
最好的方法是编写一个服务并在两个控制器中使用该服务。请参阅文档服务文档
如果您确实想从另一个控制器访问控制器方法,请遵循以下选项:在范围内发出事件:
function FirstController($scope) { $scope.$on('someEvent', function(event, args) {});}
function SecondController($scope) { $scope.$emit('someEvent', args);}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
38897 次 |
最近记录: |