1
這是我的控制器代碼,用於獲取,添加和刪除客戶的簡單應用程序。我只是看了約翰帕帕2014年的演講,並儘可能地追隨他的風格指南。我在後端使用節點和mongo,並儘可能以RESTful的方式運行。我正在加載CustomersController(並使用控制器作爲語法)在部分。每次我加載我的部分並創建我的控制器的實例,我想讓所有的客戶,所以我可以顯示它們。我將$ resource查詢調用包裝在一個名爲getAll的函數中,我只是立即調用它,然後在控制器的每個回調中再次調用它以更新列表。這是可以做的還是有另一種方法,我需要採取。對於這個簡單的應用程序,還有什麼我應該避免的?ngResource的角度工廠和控制器最佳實踐
控制器:
(function() {
'use strict';
angular.module('storeApp').controller('CustomersController', CustomersController);
CustomersController.$inject = ['CustomersFactory'];
/* @ngInject */
function CustomersController(CustomersFactory) {
var vm = this;
/* RESTful Controller functions */
vm.getAll = function() {
vm.customers = CustomersFactory.query(function() {
// Do stuff after getting all the customers
});
};
vm.getAll();
vm.create = function(customer) {
CustomersFactory.save(customer, function() {
vm.getAll();
});
}
vm.delete = function(customer) {
customer.$delete(function() {
vm.getAll();
});
};
}
})();
廠:
(function() {
'use strict';
angular.module('storeApp').factory('CustomersFactory', CustomersFactory);
CustomersFactory.$inject = ['$resource', '$http'];
/* @ngInject */
function CustomersFactory($resource, $http) {
return $resource('/customers/:id', { id: '@_id'});
}
})();
所以總結了一些什麼,我很好奇:
- 1)創建一個包裝爲getAll並從我的其他內部調用它滾輪方法好嗎?
- 2)使用資源$ delete的實例方法比使用$ resource方法更好地將整個客戶對象從我的視圖/控制器發送到工廠?是否存在一種REST風格/最佳實踐方式來刪除客戶,而不會在網址中公開ID?
- 3)有沒有其他的最佳做法,我違反。 (我知道我還沒有做任何錯誤處理)
如果其他人在進行添加和刪除操作,而我正在進行添加和刪除操作,不從數據庫提取整個列表可能會導致一些混淆?或者這是套接字的主題? – Nate
我曾經想過提及這是堅持你所做的一切的潛在原因。我想這實際上取決於規模,範圍等。如果您希望將業務增長到有大量客戶的地步,那麼在任何時間點檢索整個列表可能是錯誤的。 :) –
有道理!感謝您的輸入! :) – Nate