如何在AngularJS中将$ rootScope注入到Factory函数中

时间:2017-04-21 22:55:58

标签: angularjs angularjs-factory

我已经获得了一些AngularJS代码,该代码具有从将文件发布到Web API的指令调用的工厂函数。我在传递返回控制器的密钥时遇到问题。有人能告诉我怎么做吗?

这是发布我的文件的工厂函数:

return fileManagerClient.save(formData)
  .$promise
  .then(function(result) {
      if (result && result.files) {
        result.files.forEach(function(file) {
          if (!fileExists(file.name)) {
            service.files.push(file);
          }
        });
      }

      appInfo.setInfo({
        message: "files uploaded successfully"
      });

      return result.$promise;
    },
    function(result) {
      appInfo.setInfo({
        message: "something went wrong: " + result.data.message
      });
      return $q.reject(result);
    })['finally'](
    function() {
      appInfo.setInfo({
        busy: false
      });
      service.status.uploading = false;
    });
}

我正在尝试将result.value(这是发布文件的关键字)传递给我的控制器,但我不知道该怎么做。

感谢任何帮助。

谢谢,

皮特

1 个答案:

答案 0 :(得分:0)

如果你说的是真的,那么你只需要让then回调回复result.value

.then(function(result) {
  if (result && result.files) {
    result.files.forEach(function(file) {
      if (!fileExists(file.name)) {
        service.files.push(file);
      }
    });
  }

  appInfo.setInfo({
    message: "files uploaded successfully"
  });

  return result.value;
}

在您的控制器中:

myFactory.myFactoryFunction(formData)
    .then(function (key) {
        console.log(key);
    });