ng-include в AngularJS: Як включити файл HTML [Приклад]
За замовчуванням HTML не надає можливості включати клієнтський код з інших файлів. Зазвичай у будь-якій мові програмування є хорошою практикою розподіляти функції між різними файлами для будь-якої програми.
Наприклад, якби у вас була логіка для числових операцій, ви, як правило, хотіли б мати цю функціональність визначену в одному окремому файлі. Цей окремий файл можна було б повторно використовувати в кількох програмах, просто включивши цей файл.
Зазвичай це концепція Включайте заяви які доступні в таких мовах програмування, як .Net і Java.
У цьому підручнику розглядаються інші способи включення файлів (файлів, які містять зовнішній код HTML) до основного файлу HTML.
Клієнтська сторона включає
Одним із найпоширеніших способів є додавання HTML-коду через Javascript. JavaScript це мова програмування, яка може бути використана для маніпулювання вмістом сторінки HTML на льоту. Отже, Javascript також можна використовувати для включення коду з інших файлів.
Наведені нижче кроки показують, як це можна зробити.
Крок 1) Визначте файл під назвою Sub.html і додайте до нього наступний код.
<div> This is an included file </div>
Крок 2) Створіть файл під назвою Sample.html, який є основним файлом програми, і додайте наведений нижче фрагмент коду.
Нижче наведено основні аспекти коду, на які слід звернути увагу.
- У тегу body є тег div, який має ідентифікатор вмісту. Це місце, куди буде вставлено код із зовнішнього файлу "Sub.html".
- Є посилання на сценарій jquery. JQuery — це мова сценаріїв, побудована на основі Javascript що робить роботу з DOM ще простішою.
- У 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.
- Заголовок сторінки
- Нижній колонтитул сторінки
- Навігаційне меню.
Щоб веб-сервер міг розпізнавати серверні включення, імена файлів мають спеціальні розширення. Зазвичай вони приймаються веб-сервером, наприклад .shtml, .stm, .shtm, .cgi.
Директива, яка використовується для включення вмісту, є «директива включення». Приклад директиви include наведено нижче;
<!--#include virtual="navigation.cgi" -->
- Наведена вище директива дозволяє включати вміст одного документа в інший.
- Наведена вище команда «віртуальна» використовується для вказівки цілі відносно кореня домену програми.
- Окрім віртуального параметра, є також параметр файлу, який можна використовувати. Параметри «файл» використовуються, коли потрібно вказати шлях відносно каталогу поточного файлу.
Примітка:
Віртуальний параметр використовується для визначення файлу (сторінки HTML, текстового файлу, сценарію тощо), який необхідно включити. Якщо процес веб-сервера не має доступу для читання файлу або виконання сценарію, команда include не вдасться виконати. «Віртуальне» слово — це ключове слово, яке необхідно розмістити в директиві include.
Як включити файл HTML в AngularJS
Angular надає функцію для включення функцій з інших файлів AngularJS за допомогою директиви ng-include.
Основне призначення «директиви ng-include» використовується для отримання, компіляції та включення зовнішнього HTML-фрагмента в основну програму AngularJS.
Давайте розглянемо наведену нижче базу коду та пояснимо, як цього можна досягти за допомогою Angular.
Крок 1) запишемо наведений нижче код у файлі під назвою Table.html. Це файл, який буде вставлено в наш основний файл програми за допомогою директиви ng-include.
Наведений нижче фрагмент коду припускає, що існує змінна області видимості під назвою «tutorial». Потім він використовує директиву ng-repeat, яка переглядає кожну тему в змінній «Навчальний посібник» і відображає значення для пари ключ-значення «ім’я» та «опис».
<table> <tr ng-repeat="Topic in tutorial"> <td>{{ Topic.Name }}</td> <td>{{ Topic.Country }}</td> </tr> </table>
Крок 2) запишемо наведений нижче код у файлі під назвою Main.html. Це проста програма angular.JS, яка має такі аспекти
- Використовуйте директиву «ng-include», щоб додати код у зовнішній файл «Table.html». Заява виділена жирним шрифтом у коді нижче. Тож тег div ' ' буде замінено на весь код у файлі 'Table.html'.
- У контролері змінна «tutorial» створюється як частина об’єкта $scope. Ця змінна містить список пар ключ-значення.
У нашому прикладі пари ключ-значення є
- Назва – це вказує на назву теми, як-от контролери, моделі та директиви.
- Description – це опис кожної теми
Змінна підручника також доступна у файлі «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>
Коли ви виконаєте наведений вище код, ви отримаєте наступний результат.
Вихід:
Підсумки
- За замовчуванням ми знаємо, що HTML не надає прямого способу включення вмісту HTML з інших файлів, як інші мови програмування.
- Javascript разом із JQuery є найкращим варіантом для вбудовування вмісту HTML з інших файлів.
- Інший спосіб включення HTML вміст з інших файлів — використовувати директива та ключове слово віртуального параметра. Ключове слово віртуального параметра використовується для позначення файлу, який потрібно вставити. Це відомо як включення на стороні сервера.
- Angular також надає можливість включати файли за допомогою директиви ng-include. Цю директиву можна використовувати для введення коду із зовнішніх файлів безпосередньо в основний файл HTML.