angularjs – 在angular.js工厂中使用$http

在我的应用程序中,我使用angular.js和jquery ui自动完成.我遇到了同样的问题
HERE
接受的答案对我来说很有用,而且正是我需要直到今天才需要用$http ajax调用替换静态值数组.
我试图将$http作为参数传递给父函数,但我得到“未知提供者:autoCompleteProvider< - autoComplete” 我的问题是,如何在不重写或更改当前解决方案的情况下使用$http?
最佳答案
您需要在服务的getSource()函数中添加回调引用:

app.factory('autoCompleteDataService', ['$http', function($http) {
   return {
       getSource: function(callback) {
          var url = '...';
          $http.get(url).success(function(data) {
             callback(data);
          }
       }
   }
}]);

如果您的服务器返回json,您也可以使用$http.jsonp.不要忘记JSON_CALLBACK参数.

在您的指令中,您需要添加回调函数本身:

...
autoCompleteDataService.getSource(function(data) {
   elem.autocomplete({
         source: data
         minLength: 2
   });    
});

转载注明原文:angularjs – 在angular.js工厂中使用$http - 代码日志