Учебники

20) ng-include в AngularJS

По умолчанию HTML не предоставляет средства для включения клиентского кода из других файлов. Обычно на любом языке программирования рекомендуется распределять функциональность по различным файлам для любого приложения.

Например, если у вас есть логика для числовых операций, вы обычно хотите, чтобы эта функциональность была определена в одном отдельном файле. Этот отдельный файл можно затем повторно использовать в нескольких приложениях, просто включив этот файл.

Обычно это концепция операторов включения, которые доступны на таких языках программирования, как .Net и Java.

В этом руководстве рассматриваются другие способы включения файлов (файлов, содержащих внешний HTML-код) в основной файл HTML.

В этом уроке вы узнаете

Клиентская часть включает в себя

Одним из наиболее распространенных способов является включение кода HTML через Javascript. JavaScript — это язык программирования, который можно использовать для управления содержимым HTML-страницы на лету. Следовательно, Javascript также может быть использован для включения кода из других файлов.

Следующие шаги показывают, как это можно сделать.

Шаг 1) Определите файл с именем Sub.html и добавьте в него следующий код.

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

Шаг 2) Создайте файл с именем Sample.html, который является вашим основным файлом приложения, и добавьте приведенный ниже фрагмент кода.

Ниже приведены основные аспекты, которые следует отметить относительно приведенного ниже кода.

  1. В теге body есть тег div, который имеет идентификатор Content. Это место, куда будет вставлен код из внешнего файла Sub.html.
  2. Есть ссылка на скрипт jquery. JQuery — это язык сценариев, построенный поверх Javascript, который делает манипулирование DOM еще проще
  3. В функции Javascript есть оператор ‘$ («# Content»). Load («Sub.html»);’ в результате код в файле Sub.html будет вставлен в тег div, имеющий идентификатор Content.
    <html> 
    	  <head> 
    	    <script src="/jquery.js"></script> 
    	    <script> 
    	    $(function(){
    	      $("#Content").load("Sub.html"); 
    	    });
        </script> 
      </head> 
    
    <body> 
         <div id="Content"></div>
      </body> 
    </html>

Серверная часть Включает

Включения на стороне сервера также доступны для включения общего фрагмента кода по всему сайту. Обычно это делается для включения содержимого в следующие части HTML-документа.

  1. Заголовок страницы
  2. Нижний колонтитул страницы
  3. Меню навигации.

Для того, чтобы веб-сервер распознал серверные включения, имена файлов имеют специальные расширения. Они обычно принимаются веб-сервером, таким как .shtml, .stm, .shtm, .cgi.

Директива, используемая для включения контента, является «директивой включения». Пример директивы include показан ниже;

<!--#include virtual="navigation.cgi" -->
  • Приведенная выше директива позволяет включать содержимое одного документа в другой.
  • Код «Виртуальная», приведенный выше, используется для указания цели относительно корня домена приложения.
  • Кроме того, для виртуального параметра есть также параметр файла, который можно использовать. Параметры «файл» используются, когда необходимо указать путь относительно каталога текущего файла.

Замечания:

Виртуальный параметр используется для указания файла (HTML-страницы, текстового файла, сценария и т. Д.), Который необходимо включить. Если процесс веб-сервера не имеет доступа для чтения файла или выполнения сценария, команда include завершится неудачно. «Виртуальное» слово — это ключевое слово, которое необходимо поместить в директиву включения.

Как включить HTML-файл в AngularJS

Angular предоставляет функцию для включения функций из других файлов AngularJS с помощью директивы ng-include.

Основная цель «директивы ng-include» используется для извлечения, компиляции и включения внешнего HTML-фрагмента в основное приложение AngularJS.

Давайте посмотрим на приведенную ниже базу кода и объясним, как этого можно добиться с помощью Angular.

Шаг 1) давайте напишем приведенный ниже код в файле с именем Table.html. Это файл, который будет вставлен в наш основной файл приложения с помощью директивы ng-include.

В приведенном ниже фрагменте кода предполагается, что существует переменная области видимости, называемая «учебник». Затем он использует директиву ng-repeat, которая просматривает каждую тему в переменной «Tutorial» и отображает значения для пары ключ-значение «имя» и «описание».

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

Шаг 2) давайте напишем приведенный ниже код в файле с именем Main.html. Это простое приложение angular.JS, которое имеет следующие аспекты

  1. Используйте «директиву ng-include», чтобы внедрить код во внешний файл «Table.html». Заявление выделено жирным шрифтом в приведенном ниже коде. Таким образом, тег div ‘ <div ng-include = «‘ Table.html ‘»> </ div>’ будет заменен на весь код в файле ‘Table.html’.
  2. В контроллере переменная «tutorial» создается как часть объекта $ scope. Эта переменная содержит список пар ключ-значение.

В нашем примере пары ключ-значение

  1. Имя. Обозначает название темы, такой как «Контроллеры, Модели и Директивы».
  2. Описание — это дает описание каждой темы

Обучающая переменная также доступна в файле 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>

Когда вы выполните приведенный выше код, вы получите следующий вывод.

Выход :

ng-include в AngularJS - учитесь за 10 минут!

Резюме:

  • По умолчанию мы знаем, что HTML не обеспечивает прямой способ включения содержимого HTML из других файлов, таких как другие языки программирования.
  • Javascript вместе с JQuery является наиболее предпочтительным вариантом для встраивания содержимого HTML из других файлов.
  • Другим способом включения содержимого HTML из других файлов является использование директивы <include> и ключевого слова виртуального параметра. Ключевое слово виртуального параметра используется для обозначения файла, который необходимо внедрить. Это называется включением на стороне сервера.
  • Angular также предоставляет возможность включать файлы с помощью директивы ng-include. Эта директива может использоваться для вставки кода из внешних файлов непосредственно в основной файл HTML.