这是我的控制器代码,用于获取,添加和删除客户的简单应用程序。我刚刚观看了John Papa 2014年的演讲,并试图尽可能地遵循他的风格指南。我在后端使用node和mongo并试图尽可能地使用RESTful。我在部分中加载CustomersController(并使用控制器作为语法)。每次我加载我的部分并创建我的控制器的实例我想得到所有的客户,所以我可以显示它们。我在一个名为getAll的函数中包装了$ resource查询调用,我只是立即调用它,然后在控制器的每个回调中再次调用它来更新列表。这是可以的,还是我需要采取另一种方法。对于这个简单的应用程序,还有其他我应该避免的事情吗?
控制器:
(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'});
}
})();
总结一下我很好奇的一些事情:
答案 0 :(得分:1)
你有个好的开始。使用角度起床和跑步可能令人生畏。
不,这是额外的开销。您已将客户列表存储在内存中。更新列表中的对象,无需再次检索它们。
没有。无论如何,id都在整个客户对象中,所以你并没有真正隐藏它。您只是发送了超过必要的数据。
这是一个非常基本的开始,但除了你触及的领域之外,我会说不。