簡體   English   中英

我如何在angularjs中的2個獨立控制器中運行功能

[英]how i can run function in 2 separated controllers in angularjs

我有2個單獨的angularjs控制器

名為HomeController和SearchController的

我在HomeController中有一個名為“ Search()”的函數

如何從searchController運行搜索功能?

在工廠中定義“搜索”功能,將該工廠注入兩個控制器中,然后就可以從兩個控制器訪問“搜索”功能。

樣品:

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');
    };
  };
});

我做了這個Plunker它可以完成上述。 app.js文件如下所示。 它使用工廠聲明。 另外,如果只希望此函數存儲並返回一些數據,則可以使用angular的$ 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
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM