0

我有两个不同的 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();

});

我想要做的是引用其中的searchotherSearch函数search.jsresults.js但是当我这样做时,未知的提供者会失败:

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

什么是正确的方法,所以我可以调用FACTORY其中包含的方法search.js

4

1 回答 1

0

在下面的代码中,您所做的就是使用 name 重新声明您的 Angular 应用程序search

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

我认为问题是你试图注入answersas search。试试这个:

app.controller('resultsCtrl',function($scope,$http,answers)
    answers.search();  
    answers.otherSearch();
于 2013-10-22T16:09:11.940 回答