angular js为另一个控制器方法中的控制器调用方法

时间:2014-12-24 06:42:42

标签: angularjs angularjs-scope angularjs-service angularjs-controller

我在angularjs编写代码,根据会话需求加载controller文件 我有 admin(let say ctrl1) staffs (ctrl2) 的单独控制器文件以及一个 common(ctrlComm) 文件使用其中的任何一个,现在我想在ctrl1 内调用 ctrlComm的功能,我不想再次编写或粘贴文件代码,我该怎么做呢。这是我的代码

CTRL1:

customerSupport.controller('studentSheet',['$scope',function($scope){

$scope.searchStudent=function(studentid){
        angService.getfromRemote('students/'+studentid)
            .success(function(response){
                if(response.success){
                        ...
                 }
           })
        }
    }])

ctrlComm

activities.controller('usersActivites',['$scope',function(){

$scope.studentdetail=function(studentid){
    console.log("how can i call the searchStudent if ctrl1 here ??");

    $scope.searchStudent(studentid);

   }


}])

1 个答案:

答案 0 :(得分:3)

分享功能是一个明确的标志,您需要service.

  

Angular服务是使用dependency injection (DI)连接在一起的可替代对象。您可以使用服务在整个应用中组织和共享代码。

我相信你已经有angService了。在usersActivites中注入此服务,您就可以开始使用了。您可以调整您的服务以直接获取学生详细信息。在那里创建一些函数,如angService.searchStudent,并从服务返回适当的响应。