0

我有两个单独的 angularjs 控制器,分别命名为HomeControllerSearchController.

我有一个名为Search()in的函数HomeController

如何从 运行搜索功能searchController

4

2 回答 2

1

我制作了这个 Plunker,它可以完成上述操作。app.js 文件如下所示。它使用工厂声明。或者,如果您只是希望此函数存储和返回一些数据,那么您可以使用 $rootScope 角度服务,它可以全局访问。服务在执行某些操作时是首选。看看这个链接,其中有解释使用服务与 rootScope 的答案。

app.controller('HomeCtrl', function($scope, searchService) {
$scope.ctrl1Fun= function() {
    searchService.search();
}
});

app.controller('SearchCtrl', function($scope, searchService) {
      $scope.ctrl2Fun= function() {
       searchService.search();
      }
})

app.factory('searchService', function(){
  function search(){
    alert('hello World')
  }
  var service = {search : search}
  return service
});
于 2016-12-12T18:02:49.957 回答
1

在工厂中定义“搜索”功能,将该工厂注入两个控制器,然后您可以从两个控制器访问“搜索”功能。

样本:

app.controller('HomeController', function(searchFactory){
   //calling factory function
   //searchFactory.search();

});

app.controller('searchController ', function(searchFactory){

   //calling factory function
   //searchFactory.search();

});

app.factory('searchFacotry', function(){
  return{
    search: function(arg){
      alert('hello world');
    };
  };
});
于 2016-12-12T17:32:45.013 回答