I am creating a web application with the Angular 2 framework and I want to use an external template ( https://freehtml5.co/preview/?item=splash-free-html5-bootstrap-template-for-any-websites ).
I need to run some scripts (jqery.min.js, bootstrap.js, ...) in my component template, but if I put it in script tags, this will not work. If I run the script tag in index.html, it works, but when I go to another page, the script does not reload.
How to load scripts without script tag in a template?
index.html
<!doctype html> <html> <head> <meta charset="utf-8"> <title>Angular2App</title> <base href="/"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="icon" type="image/x-icon" href="favicon.ico"> <meta property="og:title" content="" /> <meta property="og:image" content="" /> <meta property="og:url" content="" /> <meta property="og:site_name" content="" /> <meta property="og:description" content="" /> <meta name="twitter:title" content="" /> <meta name="twitter:image" content="" /> <meta name="twitter:url" content="" /> <meta name="twitter:card" content="" /> <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,700" rel="stylesheet"> <link rel="stylesheet" href="assets/css/animate.css"> <link rel="stylesheet" href="assets/css/icomoon.css"> <link rel="stylesheet" href="assets/css/themify-icons.css"> <link rel="stylesheet" href="assets/css/bootstrap.css"> <link rel="stylesheet" href="assets/css/magnific-popup.css"> <link rel="stylesheet" href="assets/css/owl.carousel.min.css"> <link rel="stylesheet" href="assets/css/owl.theme.default.min.css"> <link rel="stylesheet" href="assets/css/style.css"> // SCRIPTS THAT I NEED TO LOAD <script src="assets/js/modernizr-2.6.2.min.js"></script> <script src="assets/js/jquery.min.js"></script> <script src="assets/js/jquery.easing.1.3.js"></script> <script src="assets/js/bootstrap.min.js"></script> <script src="assets/js/jquery.waypoints.min.js"></script> <script src="assets/js/owl.carousel.min.js"></script> <script src="assets/js/jquery.countTo.js"></script> <script src="assets/js/jquery.magnific-popup.min.js"></script> <script src="assets/js/magnific-popup-options.js"></script> <script src="assets/js/main.js"></script> // SCRIPTS THAT I NEED TO LOAD </head> <body> <app-root></app-root> </body> </html>
app.module.ts
import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { HttpModule } from '@angular/http'; import { routing } from './app.routing.module'; import { AppComponent } from './app.component'; import { HomeComponent } from './home/home.component'; import { LoginComponent } from './login/login.component'; @NgModule({ declarations: [ AppComponent, HomeComponent, LoginComponent ], imports: [ BrowserModule, FormsModule, HttpModule, routing ], providers: [], bootstrap: [AppComponent] }) export class AppModule { }
app.routing.module.ts
import { Routes, RouterModule } from '@angular/router'; import { HomeComponent } from './home/home.component'; import { LoginComponent } from './login/login.component'; const routes: Routes = [ { path: 'login', component: LoginComponent }, { path: 'home', component: HomeComponent }, { path: '', component: LoginComponent }, { path: '**', component: LoginComponent } ]; export const routing = RouterModule.forRoot(routes);
app.component.ts
import { Component } from '@angular/core'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { }
app.component.html
<router-outlet></router-outlet>