ng-include dans AngularJS : Comment inclure un fichier HTML [Exemple]

Par dรฉfaut, HTML ne permet pas d'inclure du code cรดtรฉ client provenant d'autres fichiers. C'est normalement une bonne pratique dans n'importe quel langage de programmation de rรฉpartir les fonctionnalitรฉs sur diffรฉrents fichiers pour n'importe quelle application.

Par exemple, si vous disposez d'une logique pour les opรฉrations numรฉriques, vous souhaiterez normalement que cette fonctionnalitรฉ soit dรฉfinie dans un fichier distinct. Ce fichier sรฉparรฉ pourrait ensuite รชtre rรฉutilisรฉ dans plusieurs applications en incluant simplement ce fichier.

C'est normalement le concept de Inclure des dรฉclarations qui sont disponibles dans des langages de programmation tels que .Net et Java.

Ce didacticiel examine d'autres faรงons dont les fichiers (fichiers contenant du code HTML externe) peuvent รชtre inclus dans le fichier HTML principal.

Le cรดtรฉ client comprend

L'un des moyens les plus courants consiste ร  inclure du code HTML via Javascript. Javascรฉnario est un langage de programmation qui peut รชtre utilisรฉ pour manipuler le contenu d'une page HTML ร  la volรฉe. Ainsi, Javascript peut รฉgalement รชtre utilisรฉ pour inclure du code provenant dโ€™autres fichiers.

Les รฉtapes ci-dessous montrent comment cela peut รชtre accompli.

ร‰tape 1) Dรฉfinissez un fichier appelรฉ Sub.html et ajoutez le code suivant au fichier.

<div>
	This is an included file
</div>

ร‰tape 2) Crรฉez un fichier appelรฉ Sample.html, qui est votre fichier d'application principal et ajoutez l'extrait de code ci-dessous.

Vous trouverez ci-dessous les principaux aspects ร  noter concernant le code ci-dessous,

  1. Dans la balise body, il y a une balise div qui a un identifiant Content. C'est l'endroit oรน sera insรฉrรฉ le code du fichier externe 'Sub.html'.
  2. Il y a une rรฉfรฉrence ร  un script jquery. JQuery est un langage de script construit sur Javascript ce qui rend la manipulation du DOM encore plus facile.
  3. Dans l' Javascript fonction, il y a une instruction '$(โ€œ#Contentโ€).load(โ€œSub.htmlโ€);' ce qui provoque l'injection du code du fichier Sub.html dans la balise div qui a l'identifiant de Content.
    <html> 
    	  <head> 
    	    <script src="jquery.js"></script> 
    	    <script> 
    	    $(function(){
    	      $("#Content").load("Sub.html"); 
    	    });
        </script> 
      </head> 
    
    <body> 
         <div id="Content"></div>
      </body> 
    </html>

Server Side Includes

Les inclusions cรดtรฉ serveur sont รฉgalement disponibles pour inclure un morceau de code commun sur un site. Ceci est normalement fait pour inclure du contenu dans les parties ci-dessous d'un document HTML.

  1. En-tรชte de page
  2. Pied de page
  3. Le menu de navigation.

Pour qu'un serveur Web reconnaisse un Server Side Include, les noms de fichiers ont des extensions spรฉciales. Ils sont gรฉnรฉralement acceptรฉs par le serveur Web tels que .shtml, .stm, .shtm, .cgi.

La directive utilisรฉe pour inclure du contenu est la ยซ directive include ยป. Un exemple de directive include est prรฉsentรฉ ci-dessous ;

<!--#include virtual="navigation.cgi" -->
  • La directive ci-dessus permet d'inclure le contenu d'un document dans un autre.
  • La commande ยซ virtuelle ยป ci-dessus est utilisรฉe pour spรฉcifier la cible par rapport ร  la racine du domaine de l'application.
  • De plus, au paramรจtre virtuel, il existe รฉgalement le paramรจtre file qui peut รชtre utilisรฉ. Les paramรจtres ยซ file ยป sont utilisรฉs lorsqu'il faut prรฉciser le chemin relatif au rรฉpertoire du fichier courant.

Remarque:

Le paramรจtre virtual permet de spรฉcifier le fichier (page HTML, fichier texte, script, etc.) qui doit รชtre inclus. Si le processus du serveur Web n'a pas accรจs pour lire le fichier ou exรฉcuter le script, la commande include รฉchouera. Le mot ยซ virtuel ยป est un mot-clรฉ qui doit รชtre placรฉ dans la directive d'inclusion.

Comment inclure un fichier HTML dans AngularJS

Angular fournit la fonction permettant d'inclure les fonctionnalitรฉs d'autres fichiers AngularJS en utilisant la directive ng-include.

L'objectif principal de la ยซ directive ng-include ยป est utilisรฉ pour rรฉcupรฉrer, compiler et inclure un fragment HTML externe dans l'application principale AngularJS.

Examinons la base de code ci-dessous et expliquons comment cela peut รชtre rรฉalisรฉ en utilisant Angular.

ร‰tape 1) รฉcrivons le code ci-dessous dans un fichier appelรฉ Table.html. C'est le fichier qui sera injectรฉ dans notre fichier d'application principal ร  l'aide de la directive ng-include.

L'extrait de code ci-dessous suppose qu'il existe une variable de portรฉe appelรฉe ยซ didacticiel ยป. Il utilise ensuite la directive ng-repeat, qui parcourt chaque sujet dans la variable ยซ Tutoriel ยป et affiche les valeurs de la paire clรฉ-valeur ยซ nom ยป et ยซ description ยป.

<table>
    <tr ng-repeat="Topic in tutorial">
        <td>{{ Topic.Name }}</td>
        <td>{{ Topic.Country }}</td>
    </tr>
</table>

ร‰tape 2) รฉcrivons le code ci-dessous dans un fichier appelรฉ Main.html. Il s'agit d'une simple application angulaire.JS qui prรฉsente les aspects suivants

  1. Utilisez la ยซ directive ng-include ยป pour injecter le code dans le fichier externe 'Table.html'. La dรฉclaration a รฉtรฉ mise en รฉvidence en gras dans le code ci-dessous. Donc la balise div ' ' sera remplacรฉ par l'intรฉgralitรฉ du code dans le fichier 'Table.html'.
  2. Dans le contrรดleur, une variable ยซ tutoriel ยป est crรฉรฉe dans le cadre de l'objet $scope. Cette variable contient une liste de paires clรฉ-valeur.

Dans notre exemple, les paires clรฉ-valeur sont

  1. Nom โ€“ Ceci indique le nom d'un sujet tel que les contrรดleurs, les modรจles et les directives.
  2. Description โ€“ Ceci donne une description de chaque sujet

La variable du didacticiel est รฉgalement accessible dans le fichier 'Table.html'.

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Event Registration</title>
        <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
</head>
<body ng-app="sampleApp">
<div ng-controller="AngularController">
    <h3> Guru99 Global Event</h3>
		<div ng-include="'Table.html'"></div>
</div>
<script>

    var sampleApp = angular.module('sampleApp',[]);
    sampleApp.controller('AngularController', function($scope) {
        $scope.tutorial =[
            {Name: "Controllers" , Description : "Controllers in action"},
            {Name: "Models" , Description : "Models and binding data"},
            {Name: "Directives" , Description : "Flexibility of Directives"}
        ];

    });
</script>
</body>
</html>

Lorsque vous exรฉcutez le code ci-dessus, vous obtiendrez le rรฉsultat suivant.

Sortie:

Inclure un fichier HTML dans AngularJS

Rรฉsumรฉ

  • Par dรฉfaut, nous savons que HTML ne fournit pas de moyen direct d'inclure le contenu HTML d'autres fichiers comme les autres langages de programmation.
  • Javascript avec JQuery, c'est l'option la plus prรฉfรฉrรฉe pour intรฉgrer du contenu HTML ร  partir d'autres fichiers.
  • Une autre faรงon d'inclure HTML le contenu d'autres fichiers consiste ร  utiliser le directive et le mot-clรฉ du paramรจtre virtuel. Le mot-clรฉ de paramรจtre virtuel est utilisรฉ pour dรฉsigner le fichier qui doit รชtre intรฉgrรฉ. Cโ€™est ce quโ€™on appelle les inclusions cรดtรฉ serveur.
  • Angular offre รฉgalement la possibilitรฉ d'inclure des fichiers ร  l'aide de la directive ng-include. Cette directive peut รชtre utilisรฉe pour injecter du code provenant de fichiers externes directement dans le fichier HTML principal.

Rรฉsumez cet article avec :