Ce que j'essaye de faire, c'est d'importer le employeeController pour pouvoir l'utiliser pour mon application. Dois-je redéfinir le module empoyeesApp à l'intérieur du fichier du contrôleur? Existe-t-il un moyen d'importer et d'appliquer le fichier pour ne pas avoir à recopier le code dans le fichier app.js.
src - app - components - employees - views - form.html - table.html - stats.html - employeeController.js - employeeService.js - index.html
angular.module("employeesApp", []) .controller("employeeController", function ($scope, employeeService) { $scope.firedCount = employeeService.firedCount; var promise = employeeService.getEmployees(); promise.then(list => { $scope.employees = list; }); $scope.addEmployee = function () { var employee = { "name": $scope.employee.name, "street": $scope.employee.street, "city": $scope.employee.city, "state": $scope.employee.state, "zip": $scope.employee.zip }; employeeService.addEmployee(employee); $scope.employee.name = ''; $scope.employee.street = ''; $scope.employee.city = ''; $scope.employee.state = ''; $scope.employee.zip = ''; $scope.employees = employeeService.getEmployees(); } $scope.deleteEmployee = function (employee) { employeeService.removeEmployee(employee); $scope.employees = employeeService.getEmployees(); } });
import angular from "angular"; angular.module("employeesApp", []);
3 Réponses :
Déclarez votre contrôleur comme ceci:
angular .module('employeesApp') .service('employeeService', function () { });
Et votre service:
angular .module('employeesApp') .controller('employeeController', function ($scope, employeeService) { });
Assurez-vous que ces fichiers sont chargés en l'incluant sur votre index.html ou le charger sur votre déclaration d'état si vous utilisez ui-router.
app.js
export default function EmployeeService(){ } //EmployeeService.$inject = ['dependencies-if-needed'];
EmployeeController.js
export default function EmployeesController($scope, employeeService){ //... } EmployeesController.$inject = ['$scope', 'employeeService'];
EmployeeService.js
import employeeController from 'path-to-employee-controller'; import employeeService from 'path-to-employee-service'; angular.module('employeesApp',[]) .controller('employeesController', employeeController) .service('employeeService', employeeService);
Déclarez le contrôleur et les services dans des fichiers séparés et exportez la fonction afin que vous n'ayez pas besoin d'appeler angular.module ('moduleName'). controller ()
ou angular.module ( 'moduleName'). service ()
pour les attacher au module.
Définissez les dépendances une seule fois:
̶a̶n̶g̶u̶l̶a̶r̶.̶m̶o̶d̶u̶l̶e̶(̶"̶e̶m̶p̶l̶o̶y̶e̶e̶s̶A̶p̶p̶"̶,̶ ̶[̶]̶)̶ angular.module("employeesApp") .controller("employeeController", function ($scope, employeeService) {
import angular from "angular"; angular.module("employeesApp", []);
Attention, l'utilisation de
angular.module ('myModule', [])
créera le modulemyModule
et écrasera tout module existant nommémyModule .
Utilisezangular.module ('myModule')
pour récupérer un module existant.