2016-02-27 94 views
0

我有这样的片段:从内部调用方法?

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

    products = productsStore.get(); 

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

我如何可以调用get()方法,从同一个“工厂”内? products = productsStore.get()显然不起作用。

+1

申报'函数的get(){}','然后返回{得到:得到}' – elclanrs

+0

欢迎计算器(你会明白我的意思很快就足够了) –

+0

@elclanrs:让它成为答案! –

回答

3

可以使用显露的模块模式

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

0

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

要么,要么只是重复您的查询代码。