AngularJS参考工厂.来自外部模块的功能

AngularJS reference factory.function from external module

本文关键字:模块 功能 外部 参考 工厂 AngularJS      更新时间:2023-09-26

我有两个不同的应用程序文件,用于下面定义的angularjs:

搜索.js

var app = angular.module('search',['ngGrid']);
    app.factory('answers',function($http){  
        return{  
           search: function(params,success,error){  
            //code to execute over rest    
         },  
            otherSearch: function(params,success,error){  
            //code to execute over rest    
         }
        };  
});

结果.js

var app = angular.module('results',['ui.bootstrap','ngGrid']);  
    app.controller('resultsCtrl',function($scope,$http,search) // search should reference search.js  
    search.search();  
    search.otherSearch();

});

我正在尝试做的是从results.js引用search.js中的searchotherSearch函数,但是,当我这样做时,未知提供程序会失败:

var app = angular.module('results',['ui.bootstrap','ngGrid','search']);  
正确的

方法是什么,以便我可以调用包含在search.js中的FACTORY方法

在下面的代码中,您所做的只是使用名称 search 重新声明您的 Angular 应用程序:

var app = angular.module('search',['ngGrid']);

下面的代码中,您实际上是在声明工厂,并将其命名为 answers

    app.factory('answers',function($http){  
        return{  
           search: function(params,success,error){  
            //code to execute over rest    
         },  
            otherSearch: function(params,success,error){  
            //code to execute over rest    
         }
        };  
});

我认为问题是您正在尝试将answers注入为search.试试这个:

app.controller('resultsCtrl',function($scope,$http,answers)
    answers.search();  
    answers.otherSearch();