2014-10-29 57 views
1

我有所有的數據有關的請求已被委託給服務/工廠的印象。但是,他們擺正內部控制器,例如:

var app = angular.module("MyApp", []); 

app.controller("PostsCtrl", function($scope, $http) { 
    $http.get('data/posts.json'). 
    success(function(data, status, headers, config) { 
     $scope.posts = data; 
    }). 
    error(function(data, status, headers, config) { 
     // log error 
    }); 
}); 

是屬於正常的慣例/圖案或者它僅僅是一個例子的緣故閱讀的$ HTTP實現met例子不是一次?

+1

作爲一個良好的設計模式,它是更好地使用$ ** **的http服務/工廠。使用** $國土資源**,而不是* $ HTTP * – 2014-10-29 06:22:11

+1

這裏只是示例演示如何使用$ HTTP。但是對於編碼,大多數人使用每一個邏輯事務,退休等服務。控制器只應該作爲視圖和服務之間的信使。 – 2014-10-29 06:23:51

+0

甜美!多謝你們! – 2014-10-29 06:25:24

回答

3

所以最好的做法是依賴於具體項目的情況下,你的應用程序主要是整個代碼大小,而且團隊的規模,項目/訂婚的長度等。對於一個小工具只有幾百行代碼,創建一個服務來封裝$ http的單個使用是超過工程。它使您的項目更難,更容易閱讀和維護。然而,對於許多模塊,幾十個文件,成千上萬的代碼,其中相同的業務邏輯可能需要跨多個控制器被重用行的一個全尺寸的應用程序,然後是的,這是有道理的你$http代碼移到服務它可以獨立封裝,共享和測試。所以沒有,爲「正常」的應用程序(或中等尺寸大),在控制器使用$http不被認爲是最好的實踐模式。然而,對於一個有教育意義的示例/演示代碼片段,或者一個非常小的項目,沒關係。