我明白如何在控制器中使用Restangular,但是我的想法是Restangular本質上是類固醇的ORM。AngularJS - 在工廠中使用Restangular的REST API
ORM不應該有任何有關應用程序狀態的知識。這是控制器的工作。
我也想重新使用查詢到ORM,因此,我認爲Restangular應該用在服務中。
我的問題是,我是一個js/angularjs和restangular noob,只有大約2-3個月exp任何前端。
我的控制器:
app.controller('AdminSupplierIndexController',
['$scope', '$stateParams', '$state', 'Supplier',
function ($scope, $stateParams, $state, Supplier) {
$state.reload();
Supplier.getAll.then(function (suppliers) {
$scope.suppliers = suppliers;
});
}]);
app.controller('AdminSupplierDetailController',
['$scope', '$stateParams', 'Supplier',
function ($scope, $stateParams, Supplier) {
Supplier.getOne({ supplierId : $stateParams.supplierID}).then(function(supplier) {
$scope.supplier = supplier;
});
}]);
我廠
app.factory('Supplier', ['Restangular', function (Restangular) {
return {
getAll: Restangular.all('supplier').getList(),
getOne: Restangular.one('supplier', supplierId).get()
};
}]);
我Supplier.getAll
方法工作正常 - 我可以列出從供應商工廠的所有供應商。 我的問題是與我的Supplier.getOne
方法。
問題1:如何將supplierId注入工廠?我得到ReferenceError: supplierId is not defined
問題2:我是否試圖過度設計一些事情,考慮到當Restangular已經提供這些方法時,我將不得不爲每個工廠創建單獨的C-R-U-D方法?