Использование директив для модульной структуры HTML сайта

0

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

<html>
  <head>
    head stuff
  </head>

  <website-header></website-header>

  This page individual content.

  <website-footer></website-footer>

</html>

Будет ли это работать, и будет ли это рекомендовано? Я еще не пробовал.

Моя первая идея состояла в том, чтобы использовать ng-include и просто включать HTML файлы заголовка и нижнего колонтитула, но по какой-то причине мне трудно заставить HTML внутри этих ng-включенных html файлов визуализироваться под действием любого JavaScript. Поэтому, если я использовал jQuery, чтобы сделать мою навигацию более интерактивной, ни одна из этих интерактивностей не работала, но у меня не было ошибок.

Можно ли использовать такие директивы? Или есть только какой-то другой очевидный способ сделать это с помощью Angular? Будет ли HTML-элемент, отображаемый на странице, все еще затронут JavaScript, как если бы все элементы были закодированы в HTML для начала?

Если это нормально, есть ли какие-нибудь стандарты? Любые ошибки, или просто другая информация, которую было бы полезно знать?

  • 1
    Я использую директиву для моего верхнего и нижнего колонтитула с угловым. работать очень хорошо
  • 1
    то, что вы пытаетесь достичь, на самом деле является концепцией «веб-компонента», и она полностью действительна. Я лично предпочел бы это также. использование JQuery с Angular не рекомендуется, но это выполнимо. просто убедитесь, что когда вы пытаетесь что-то изменить в angular, вы должны уведомить angular об изменениях, что-то вроде $ scope. $ apply () в противном случае angular не узнает об этом.
Показать ещё 4 комментария

3 ответа

1
Лучший ответ

Я не вижу проблем с этим подходом. Я бы даже предложил сделать это для элемента <head></head> чтобы вы могли передавать значения, относящиеся к странице, в область видимости:

<website-head title="This Page Title"></website-head>

Обратите внимание, что создание сайта в Angular может стать жестким/странным, если вы делаете более одной страницы. Вы можете использовать Angular routing для этого, но это может привести к "уродливому" URL-адресу, например "www.website.com/#/about".

Угловой в основном используется для создания веб-приложений, PHP (например, уже предложенный TheGuyWhoCodes) может лучше в вашей ситуации. Самое большое различие между ними заключается в том, что PHP обрабатывает его на стороне сервера, и это имеет много преимуществ для веб-дизайна (думаю, SEO, который не всегда отлично обрабатывает входящий в интерфейс контент). Это некоторые вещи, о которых нужно подумать при создании веб-сайта в Angular.

  • 0
    Ого, я могу даже использовать это для тегов <head> </ head>? Это потрясающе. Спасибо!
  • 0
    ожидайте # в URL, маршрутизация очень хорошо работает для создания многостраничного веб-сайта с угловым. В конце концов, это фреймворк MVC (MVVM с контроллером)
Показать ещё 4 комментария
1

Я использую директиву для моего верхнего и нижнего колонтитулов с угловым. работать очень хорошо

пример моей директивы заголовка:

directives.directive('header', function () {
   return {
      restrict: 'A', //This means that it will be used as an attribute and NOT as an element.
      replace: false,
      scope: {},
      templateUrl: "partials/elements/header.html",
      controller: ['$scope', '$filter', function ($scope, $filter) {
         // Your behaviour goes here :)
      }]
   }
});

Вы также можете использовать ng-include как это (но директива имеет собственный контроллер)

<div ng-include="'partials/elements/header.html'" />
-2

Это нормально использовать. Если вы хотите/если вы можете использовать его, попробуйте php с его функцией include. Это держит вещи действительно красиво организованы! Поэтому вы можете сделать что-то вроде этого:

<?php include("meta.php"); ?>
<?php include("header.php"); ?>
     <body>
        Content.
      </body

<?php include("footer.php"); ?>
  • 0
    Я должен был упомянуть в OP, что я использовал php, чтобы делать подобные вещи в прошлом. Мне просто интересно, можно ли получить подобный эффект, просто используя угловые директивы. Каковы различия между php include и ng-include? Спасибо за ответ.
  • 0
    Я думаю, что это действительно зависит от того, какой язык вы бы действительно использовали в своем проекте. Для меня я использовал php include, потому что большая часть моего сайта была построена из php. Скорость также является ключевым фактором, так как она делает это на стороне сервера, она загружается быстрее для клиента
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню