angularjs - 服务返回意外结果, promise 被忽略

标签 angularjs

服务返回数据(原始$http响应)而不是结果(我想传回 Controller 的处理版本),为什么代码是这样的promise 内被忽略?

///in controller
Romanize.get($scope.currentMaterial).then(function(d){
    $scope.romanized = d;
});

//service
app.factory('Romanize', ['$http', 'Position', function($http, Position){
    return{
      get: function(query){
            var url= Position.sections[Position.sectionNumber].romanizeService + "?korean=" + query;
            var promise = $http.get(url).success(function(data) {
                var parts = $(data).find("span");
                var array = [];
                for (var x = 0; x<parts.length; x++){
                    array.push(parts[x].title);
                }
                var result = array.join("");
                return result;
            });
            return promise;
        }
    };
}]);

最佳答案

success 处理程序不提供链。您应该使用then:

var promise = $http.get(url).then(function(data) {
  var parts = $(data).find("span");
  // ...
  return result;
});

关于angularjs - 服务返回意外结果, promise 被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15484965/

相关文章:

javascript - $route.reload();问题

javascript - div 中的 UI-Router 默认 View

javascript - 未从工厂获取 JSON 数据

javascript - 将日期和时间转换为单一格式字符串的 Angular 过滤器

javascript - 单击表 AngularJS 中的过滤器

javascript - 如何重置嵌套的 ng-repeat

javascript - 创建工厂后看不到数据

javascript - 在模板中使用原始元素类型的 AngularJS 指令

javascript - 如何自动检查嵌套 ng-repeat 中的元素?

javascript - 如何在 Sails.js v0.11 中触发自定义套接字事件?