Как реализовать bootstrap scrollspy в Angular 6?

Мой код работает с Angular 6 и Bootstrap 4. В конце концов, я хочу, чтобы компонент scrollspy начальной загрузки работал в этой настройке. Bootstrap требует jQuery, и я не знаю, как заставить его работать.

HTML

<header>
  <div class = "header-nav">
    <nav id = "home-nav" class = "navbar navbar-expand-md navbar-light bg-white fixed-top">
      <a class = "navbar-brand" href = "#">Dashboard</a>
      <button class = "navbar-toggler d-lg-none" type = "button" data-toggle = "collapse" data-target = "#navbar_header"
        aria-controls = "navbar_header" aria-expanded = "false" aria-label = "Toggle navigation">
        <span class = "navbar-toggler-icon"></span>
      </button>

      <div class = "collapse navbar-collapse" id = "navbar_header">
        <ul class = "navbar-nav ml-auto">
          <li class = "nav-item active">
            <a class = "nav-link" href = "#home">Home <span class = "sr-only">(current)</span></a>
          </li>
          <li class = "nav-item">
            <a class = "nav-link" href = "#our_mission">Our Mission</a>
          </li>
          <li class = "nav-item">
            <a class = "nav-link" href = "#our_clients">our clients</a>
          </li>
          <li class = "nav-item">
            <a class = "nav-link" href = "#features">features</a>
          </li>
          <li class = "nav-item">
            <a class = "nav-link" href = "#pricing">pricing</a>
          </li>
          <li class = "nav-item">
            <a class = "nav-link" href = "#faqs">Faqs</a>
          </li>
        </ul>
      </div>
    </nav>
  </div>
</header>

<div class = "main-content">
  <section id = "home">
    <div class = "carousel slide" data-ride = "carousel">
      <div class = "carousel-inner">
        <div class = "carousel-item active">
          <img src = "../../../assets/landing-page/images/slider-1.jpg" width = "100%">
        </div>
        <div class = "carousel-item">
          <img src = "../../../assets/landing-page/images/slider-1.jpg" width = "100%">
        </div>
        <div class = "carousel-item">
          <img src = "../../../assets/landing-page/images/slider-1.jpg" width = "100%">
        </div>
      </div>
    </div>
  </section>
  <section id = "our_mission">
    <p>AAAAAAAAAA</p>
  </section>
  <section id = "our_clients"></section>
  <section id = "features"></section>
  <section id = "pricing"></section>
  <section id = "faqs"></section>
</div>

Машинопись

ngOnInit() {
  $('.main-content').scrollspy({ target: '#home-nav' });
}

Вы уже решили это?

Michael Czechowski 15.10.2018 19:07

нет, это еще не сделано. любая помощь будет признательна

Yaseen Ahmad 15.10.2018 20:25

Сегодня я больше не буду этим заниматься, но завтра мне понадобится и эта функция. Дело в том, что вам нужно внедрить jQuery в свой код Angular. Вам нужно будет объявить знак доллара $, соответствующий синтаксису jQuery, определить его внутри вашего webpack или ts config. Я подам что-нибудь завтра, хорошо?

Michael Czechowski 15.10.2018 20:31

Взгляните на это: stackoverflow.com/questions/43934727/…

Michael Czechowski 15.10.2018 20:32

Особенно этот ответ и один s ниже: stackoverflow.com/a/47996506/4892206

Michael Czechowski 15.10.2018 20:35

Я пробовал это раньше, но не повезло, я еще раз дождусь вашего ответа, большое спасибо за вашу помощь.

Yaseen Ahmad 15.10.2018 20:41

@ yaseen-ahmed Я все еще не пытался это проверить. Мой проект пока не продвигается. Но я этого не забыл. Оставайтесь в курсе!

Michael Czechowski 18.10.2018 21:25
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
4
7
3 614
1

Ответы 1

Попробуйте этот код, было бы лучше, если бы вы построили рабочий пример на таких сайтах, как codepen или stackblitz. это позволит нам легко увидеть проблему.

<header>
  <div class = "header-nav" data-spy = "scroll" data-target = ".navbar">
    <nav id = "home-nav" class = "navbar navbar-expand-md navbar-light bg-white fixed-top">
      <a class = "navbar-brand" href = "#">Dashboard</a>
      <button class = "navbar-toggler d-lg-none" type = "button" data-toggle = "collapse" data-target = "#navbar_header"
        aria-controls = "navbar_header" aria-expanded = "false" aria-label = "Toggle navigation">
        <span class = "navbar-toggler-icon"></span>
      </button>

      <div class = "collapse navbar-collapse" id = "navbar_header">
        <ul class = "navbar-nav ml-auto">
          <li class = "nav-item active">
            <a class = "nav-link" href = "#home">Home <span class = "sr-only">(current)</span></a>
          </li>
          <li class = "nav-item">
            <a class = "nav-link" href = "#our_mission">Our Mission</a>
          </li>
          <li class = "nav-item">
            <a class = "nav-link" href = "#our_clients">our clients</a>
          </li>
          <li class = "nav-item">
            <a class = "nav-link" href = "#features">features</a>
          </li>
          <li class = "nav-item">
            <a class = "nav-link" href = "#pricing">pricing</a>
          </li>
          <li class = "nav-item">
            <a class = "nav-link" href = "#faqs">Faqs</a>
          </li>
        </ul>
      </div>
    </nav>
  </div>
</header>

<div class = "main-content">
  <section id = "home">
    <div class = "carousel slide" data-ride = "carousel">
      <div class = "carousel-inner">
        <div class = "carousel-item active">
          <img src = "../../../assets/landing-page/images/slider-1.jpg" width = "100%">
        </div>
        <div class = "carousel-item">
          <img src = "../../../assets/landing-page/images/slider-1.jpg" width = "100%">
        </div>
        <div class = "carousel-item">
          <img src = "../../../assets/landing-page/images/slider-1.jpg" width = "100%">
        </div>
      </div>
    </div>
  </section>
  <section id = "our_mission">
    <p>AAAAAAAAAA</p>
  </section>
  <section id = "our_clients"></section>
  <section id = "features"></section>
  <section id = "pricing"></section>
  <section id = "faqs"></section>
</div>

он не работает в angular 6, я пробовал это раньше. Мне нужно угловое базовое решение, любая помощь будет признательна.

Yaseen Ahmad 03.09.2018 22:31

@YaseenAhmad, было бы лучше, если бы вы предоставили нам рабочий код в jsfiddle или stackblitz.

Ashish Patel 03.09.2018 22:36

вот ссылка на stackblitz stackblitz.com/edit/angular-sbgx8m, она работает нормально, я использую метод ленивой загрузки, не уверен, почему он не работает в моем коде.

Yaseen Ahmad 03.09.2018 23:10

Вы смотрели github.com/thisissoon/angular-scrollspy или ngx-scrollspy?

Ashish Patel 04.09.2018 00:26

Я не хочу использовать это, потому что я работаю над двухслойным проектом, один слой - scrollspy, а другой - простой.

Yaseen Ahmad 04.09.2018 20:57

Рассмотрите возможность использования функции комментариев вместо публикации ответа. Это сбивает с толку.

Michael Czechowski 15.10.2018 17:22

Другие вопросы по теме