从自身内部调用方法?

Call method from within itself?

我有这个片段:

myApp.factory('productsStore', function ($http, $q, Product) {
    var products = "";

    products = productsStore.get();

    return {
        get: function () {
            return Product.query({});
        }
    };
});

如何从同一个 'factory' 中调用 get() 方法? products = productsStore.get()明显不行

您可以将您 return 的对象分配给一个变量,然后调用变量中定义的 get 函数,然后 return 变量。

或者只是复制您的查询代码。

您可以使用显示模块模式

myApp.factory('productsStore', function ($http, $q, Product) {
    var products = "";

    var get = function () {
        return Product.query({});
    };

    products = get();

    return {
        get: get
    };
});


我喜欢这种模式的原因:

  • 没有混乱的 this.MyObject. 等前缀。
  • 底下看得清楚return什么是公开曝光


关于这个主题的一篇很棒的文章:Mastering the Module Pattern