1
votes

Séparation des fichiers Controller et Service pour le fichier app.js

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.

app.js

src
  - app
    - components
      - employees
        - views
          - form.html
          - table.html
          - stats.html
        - employeeController.js
        - employeeService.js
- index.html

employeeController.js

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", []);


0 commentaires

3 Réponses :


0
votes

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.


0 commentaires

1
votes

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.


0 commentaires

1
votes

Définissez les dépendances une seule fois:

app.js

̶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) {

employeeController.js

import angular from "angular";

angular.module("employeesApp", []);

Attention, l'utilisation de angular.module ('myModule', []) créera le module myModule et écrasera tout module existant nommé myModule . Utilisez angular.module ('myModule') pour récupérer un module existant.

- Guide du développeur AngularJS - modules


0 commentaires