簡體   English   中英

Angular JS-是否有在同一模塊中一起使用服務和工廠的用例

[英]Angular JS - Is there any usecase for using services and factories together in same module

我是AngularJS的新手,很抱歉,這是一個基本問題。

我知道服務和工廠用於完成幾乎相同的事情。 它們用於獲取外部數據。

但是,在任何用例中我們都應該在同一個角度模塊中使用它們嗎? 很好奇,當我瀏覽一個github項目時,意識到它們在同一模塊中同時使用服務和工廠。 這樣做的好處是什么?

沒有實際的區別,除非您更喜歡以一種方式鍵入另一種方式。 我通常使用服務是因為我喜歡寫作

this.myFunk = function(){...}

多於

myFunk: function(){....}

最好選擇哪種輸入方式。

這是一篇很棒的讀物,它將闡明工廠,服務和提供者之間的某些區別(它們的使用案例與工廠和服務的確不同):

http://tylermcginnis.com/angularjs-factory-vs-service-vs-provider/

抱歉,請重新閱讀您的問題。 據我所知,在一個模塊中同時使用這兩個模塊是沒有實際意義的,因為它們可以完成相同的任務。 我可以認為不在同一模塊中同時使用服務和工廠的唯一原因是代碼的一致性。

我認為他們原本想讓喜歡new事物的人和不快樂的人同時做。

就個人而言,我們使用.factory()並且喜歡使用顯示模塊模式來輕松查看該服務/工廠提供的哪些方法/屬性。

https://github.com/johnpapa/angularjs-styleguide#factories

最終可能不得不滾動瀏覽所有內容,以查找可以從該“服務”中調用的內容

/* avoid */
function dataService() {
  var someValue = '';
  function save() { 
    /* */
  };
  function validate() { 
    /* */
  };

  return {
      save: save,
      someValue: someValue,
      validate: validate
  };
}

改用這個

/* recommended */
function dataService() {
    var someValue = '';
    var service = {
        save: save,
        someValue: someValue,
        validate: validate
    };
    return service;

    ////////////

    function save() { 
        /* */
    };

    function validate() { 
        /* */
    };
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM