Je travaille avec le projet. J'utilise pagination, checkAll, deleteAll fonctionnalités similaires qui sont communes entre tous les contrôleurs. Je souhaite déplacer le code vers l'usine ou le service, donc je peux l'utiliser pour tous les contrôleurs. J'ai essayé mais pas clair avec la perfection. Je veux un indice. Je sais créer l'usine ou le service, et comment l'intégrer contrôleur mais peu confus avec la logique du déplacement du code semblable.Combiner la fonction commune dans les contrôleurs AngularJS
Je donne un exemple que j'utilise pour écrire dans tous les contrôleurs, Logique pour le tri et la pagination.
$scope.bigCurrentPage = 1;
$scope.editIndex = "";
var sortKey = "name";
var sortDirection = "ASC";
$scope.filterObj = {order: [sortKey + " " + sortDirection], limit: CONFIG.limit, offset: 0};
$scope.filterObj.offset = ($scope.bigCurrentPage - 1) * CONFIG.limit;
$scope.sortList = function (inputSort) {
if (sortKey === inputSort) {
sortDirection = (sortDirection === "ASC") ? "DESC" : "ASC";
} else {
sortKey = inputSort;
}
$scope.filterObj.order = [sortKey + " " + sortDirection];
$scope.pageChanged();
}
$scope.getSongs = function() {
$scope.filterObj.offset = ($scope.bigCurrentPage - 1) * CONFIG.limit;
Song.find({filter: $scope.filterObj})
.$promise
.then(function (data) {
$scope.items = data;
$scope.maxSize = 5;
$scope.size = $scope.filterObj.limit;
$scope.countingIndex = ($scope.bigCurrentPage - 1) * $scope.filterObj.limit; //Its idea to implement counting. Variable is not part of pagination..////
});
};
$scope.pageChanged = function() {
$scope.getSongs();
};
$scope.pageChanged();
De cette façon, je suppose que je fais cela pour les albums et je changerais SORTKEY comme « id », utilisera les services avec l'objet « Album.find », changerait « filtre » et je suis fait, mais le fait est-ce que j'utilise le code commun dans tous les contrôleurs. Comment pourrais-je l'écrire de meilleure façon.
Étant donné que vous utilisez un groupe de $ scope, les services ne sont pas appropriés. Fais-toi une classe de contrôleur de base et en hérite. – Cerad