[英]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.