Utworzono 4 kątowy projekt z kanciastym-cli. zaimportowane css i js w pliku angular-cli.json.Angular4: jQuery i kanciasty 2-materialize nie działają po nawigacji po trasie
"styles": [
"../node_modules/materialize-css/dist/css/materialize.css",
"styles.css"
],
"scripts": [
"../node_modules/jquery/dist/jquery.js",
"../node_modules/hammerjs/hammer.js",
"../node_modules/materialize-css/dist/js/materialize.js",
"../src/assets/js/init.js"
],
init.js ma poniżej funkcji
(function($) {
$(function() {
$('.slider').slider();
$('.button-collapse').sideNav();
$('.carousel').carousel();
// $('.carousel.carousel-slider').carousel({fullWidth: true});
$('.carousel').carousel({
dist: 0,
shift: 0,
padding: 20,
});
}); // end of document ready
})(jQuery);
importowane MaterializeModule w app.module.ts importu {MaterializeModule} i 'angular2-materializować;
Suwak działa zgodnie z oczekiwaniami, gdy wyświetlamy stronę po raz pierwszy lub kiedy odświeżamy.
Problem: gdy nawigujemy za pomocą routera, strona porusza się prawidłowo, ale funkcje javascript nie są wywoływane.
routingu ze strony domowej <a routerLink="/blog/abc-1">Blog</a>
Próbowałem: `blog.component.ts
import { Component, OnInit } from '@angular/core';
import { MaterializeModule } from 'angular2-materialize';
import * as $ from 'jquery';
import * as Materialize from 'materialize-css';
declare let Materialize : any;
@Component({
selector: 'app-blog',
templateUrl: './blog.component.html',
styleUrls: ['./blog.component.css']
})
export class BlogComponent implements OnInit {
constructor() { }
ngOnInit() {
Materialize('.slider').slider();
}
}
` Błąd: coraz błąd: ERROR Błąd typu: a.addEventListener nie jest funkcją
at http://localhost:4200/vendor.bundle.js:15611:765
at Array.forEach (native)
Czy możesz podać więcej szczegółów, pączku? Próbowałem robić 'Materialise ('. Button-dropdown')', ale dostaję błąd "Materialise is a function". Próbowałem już zrobić '$ ('. Button-dropdown'). Dropdown(); ', ale ciągle widzę ten sam problem - rozwijanie działa na dwóch stronach (losowo), ale nie działa na trzecim. Pomogło mi to rozwiązać błąd, który miałem z 'Materialise.updateTextFields()' w 'ngAfterViewChecked'. Podczas ładowania strony wystąpił błąd; zawijanie go w przygotowanym dokumencie. – Will
Ta odpowiedź jest bardzo pomocna. Mój problem został rozwiązany. Dziękuję bardzo .......... –