2016-02-27 184 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函數,然後返回該變量。

要麼,要麼只是重複您的查詢代碼。