我可以在AngularJS提供程序中返回具有多个功能的函数吗?

时间:2015-01-14 04:54:48

标签: angularjs

我想在AngularJS提供程序中使用如下所示。

provider.files.get();

我希望files函数可以有各种函数,例如put, update, insert, delete, etc.

我的代码如下。

files.getundefined

我该怎么办?

请回答我TT

var mod = angular.module('m', []);

mod.provider('provider', function() {

  this.$get = function() {
    return {
      files: function() {
        var service = {
          get: function() {
            console.log('get');
          }
        };
        return service;
      }
    };
  };
  return this;
}

1 个答案:

答案 0 :(得分:4)

您拥有的代码可以让您:provider.files().get();

这是因为provider.files是一个函数而不是一个对象。

您应该将文件的值更改为您已存储在服务变量中的对象。

您还可以使用工厂而不是提供商来简化此操作:

mod.factory('provider', function() {
    return {
      files: {
          get: function() {
            console.log('get');
          }
      }
    };
});