Angularjs:函数内部的调用服务方法

时间:2014-01-25 14:59:35

标签: angularjs angularjs-directive angularjs-scope angularjs-ng-repeat

我有这个简单的函数js getItems(),我调用了一个服务items.getItems(..), 我希望该函数返回一个数据。我试图将var与函数关联,但结果是未定义的

function getItems() {
            var resolvedValue;
            var deferred = $q.defer();
            items.getItems(function(data) {
            deferred.resolve(data);
            });
            deferred.promise.then(function(result) {
             resolvedValue=result; // it contains my information
            });
            console.log('v  alue%0' , resolvedValue); // it's undefined here!!!
            }

1 个答案:

答案 0 :(得分:0)

items.getItems是异步的,因此您必须使用$q.promise

function getItems() {
  var deferred = $q.defer();
  items.getItems(function(data) {
    deferred.resolve(items);
  });
  return deferred.promise;
}

在此处阅读更多http://docs.angularjs.org/api/ng。$ q