Sto avviando la mia prima applicazione angolare e la mia configurazione di base è terminata.
Come posso aggiungere Bootstrap alla mia applicazione?
Se puoi fornire un esempio, sarebbe di grande aiuto.
Sto avviando la mia prima applicazione angolare e la mia configurazione di base è terminata.
Come posso aggiungere Bootstrap alla mia applicazione?
Se puoi fornire un esempio, sarebbe di grande aiuto.
Risposte:
Se usi Angular-CLI per generare nuovi progetti, c'è un altro modo per rendere il bootstrap accessibile in Angular 2/4 .
$ npm install --save bootstrap
. L' --save
opzione farà apparire bootstrap nelle dipendenze."styles"
all'array. Il riferimento deve essere il percorso relativo al file bootstrap scaricato con npm. Nel mio caso è:"../node_modules/bootstrap/dist/css/bootstrap.min.css",
Il mio esempio .angular-cli.json:
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"project": {
"name": "bootstrap-test"
},
"apps": [
{
"root": "src",
"outDir": "dist",
"assets": [
"assets",
"favicon.ico"
],
"index": "index.html",
"main": "main.ts",
"polyfills": "polyfills.ts",
"test": "test.ts",
"tsconfig": "tsconfig.app.json",
"testTsconfig": "tsconfig.spec.json",
"prefix": "app",
"styles": [
"../node_modules/bootstrap/dist/css/bootstrap.min.css",
"styles.css"
],
"scripts": [],
"environmentSource": "environments/environment.ts",
"environments": {
"dev": "environments/environment.ts",
"prod": "environments/environment.prod.ts"
}
}
],
"e2e": {
"protractor": {
"config": "./protractor.conf.js"
}
},
"lint": [
{
"project": "src/tsconfig.app.json"
},
{
"project": "src/tsconfig.spec.json"
},
{
"project": "e2e/tsconfig.e2e.json"
}
],
"test": {
"karma": {
"config": "./karma.conf.js"
}
},
"defaults": {
"styleExt": "css",
"component": {}
}
}
Ora bootstrap dovrebbe far parte delle impostazioni predefinite.
Un'integrazione con Angular2 è disponibile anche attraverso il progetto ng2-bootstrap : https://github.com/valor-software/ng2-bootstrap .
Per installarlo basta inserire questi file nella tua pagina HTML principale:
<script src="https://cdnjs.cloudflare.com/ajax/libs/ng2-bootstrap/x.x.x/ng2-bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
Quindi puoi usarlo nei tuoi componenti in questo modo:
import {Component} from 'angular2/core';
import {Alert} from 'ng2-bootstrap/ng2-bootstrap';
@Component({
selector: 'my-app',
directives: [Alert],
template: `<alert type="info">ng2-bootstrap hello world!</alert>`
})
export class AppComponent {
}
Tutto quello che devi fare è includere il css boostrap nel tuo file index.html.
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
app.component.html
. per favore dillo.
Un'altra ottima alternativa (migliore?) È usare un set di widget creati dal team angular-ui: https://ng-bootstrap.github.io
Se prevedi di utilizzare Bootstrap 4, necessario con il ng-bootstrap del team angular-ui menzionato in questo thread, ti consigliamo di utilizzare questo (NOTA: non è necessario includere il file JS):
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">
Puoi anche fare riferimento a questo localmente dopo l'esecuzione npm install bootstrap@4.0.0-alpha.6 --save
indicando il file nel tuo styles.scss
file, supponendo che stai usando SASS:
@import '../../node_modules/bootstrap/dist/css/bootstrap.min.css';
@import
farlo nel tuo file SASS. In caso contrario, puoi provare ad aggiungerlo al tuo vendor.ts
file, ma non lo sto usando nel mio codice.
L'opzione più popolare è quella di utilizzare alcune librerie di terze parti distribuite come pacchetto npm come il progetto ng2-bootstrap https://github.com/valor-software/ng2-bootstrap o la libreria Angst Bootstrap dell'interfaccia utente.
Personalmente uso ng2-bootstrap. Esistono molti modi per configurarlo, poiché la configurazione dipende da come viene costruito il progetto angolare. Di seguito inserisco la configurazione di esempio basata sul progetto QuickStart di Angular 2 https://github.com/angular/quickstart
Innanzitutto aggiungiamo dipendenze nel nostro package.json
{ ...
"dependencies": {
"@angular/common": "~2.4.0",
"@angular/compiler": "~2.4.0",
"@angular/core": "~2.4.0",
...
"bootstrap": "^3.3.7",
"ng2-bootstrap": "1.1.16-11"
},
... }
Quindi dobbiamo mappare i nomi agli URL corretti in systemjs.config.js
(function (global) {
System.config({
...
// map tells the System loader where to look for things
map: {
// our app is within the app folder
app: 'app',
// angular bundles
'@angular/core': 'npm:@angular/core/bundles/core.umd.js',
'@angular/common': 'npm:@angular/common/bundles/common.umd.js',
'@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
'@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
'@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
'@angular/http': 'npm:@angular/http/bundles/http.umd.js',
'@angular/router': 'npm:@angular/router/bundles/router.umd.js',
'@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
//bootstrap
'moment': 'npm:moment/bundles/moment.umd.js',
'ng2-bootstrap': 'npm:ng2-bootstrap/bundles/ng2-bootstrap.umd.js',
// other libraries
'rxjs': 'npm:rxjs',
'angular-in-memory-web-api': 'npm:angular-in-memory-web-api/bundles/in-memory-web-api.umd.js'
},
...
});
})(this);
Dobbiamo importare il file .css bootstrap in index.html. Possiamo ottenerlo dalla directory / node_modules / bootstrap sul nostro disco rigido (perché abbiamo aggiunto la dipendenza bootstrap 3.3.7) o dal web. Ci stiamo ottenendo dal web:
<!DOCTYPE html>
<html>
<head>
...
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
...
</head>
<body>
<my-app>Loading...</my-app>
</body>
</html>
Dovremmo modificare il nostro file app.module.ts dalla directory / app
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
//bootstrap alert import part 1
import {AlertModule} from 'ng2-bootstrap';
import { AppComponent } from './app.component';
@NgModule({
//bootstrap alert import part 2
imports: [ BrowserModule, AlertModule.forRoot() ],
declarations: [ AppComponent ],
bootstrap: [ AppComponent ]
})
export class AppModule { }
E infine il nostro file app.component.ts dalla directory / app
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
template: `
<alert type="success">
Well done!
</alert>
`
})
export class AppComponent {
constructor() { }
}
Quindi dobbiamo installare le nostre dipendenze bootstrap e ng2-bootstrap prima di eseguire la nostra app. Dovremmo andare alla nostra directory di progetto e digitare
npm install
Finalmente possiamo avviare la nostra app
npm start
Esistono molti esempi di codice su github del progetto ng2-bootstrap che mostrano come importare ng2-bootstrap in varie build del progetto Angular 2. C'è persino un esempio di plnkr. C'è anche la documentazione API sul sito Web del software Valor (autori della biblioteca).
In un ambiente angular-cli, il modo più semplice che ho trovato è il seguente:
1. Soluzione in un ambiente con fogli di stile s̲c̲s̲s̲
npm install bootstrap-sass —save
In style.scss:
$icon-font-path: '~bootstrap-sass/assets/fonts/bootstrap/';
@import '~bootstrap-sass/assets/stylesheets/bootstrap';
Nota1: il ~
carattere è un riferimento alla cartella nodes_modules .
Nota2: Poiché stiamo usando scss, possiamo personalizzare tutte le variabili boostrap che desideriamo.
2. Soluzione in un ambiente con fogli di stile c̲s̲s̲
npm install bootstrap —save
In style.css:
@import '~bootstrap/dist/css/bootstrap.css';
Esistono diversi modi per configurare angular2 con Bootstrap, uno dei modi più completi per sfruttarlo al meglio è usare ng-bootstrap, usando questa configurazione diamo ad algular2 il controllo completo sul nostro DOM, evitando la necessità di usare JQuery e Boostrap .js.
1-Prendi come punto di partenza un nuovo progetto creato con Angular-CLI e usando la riga di comando, installa ng-bootstrap:
npm install @ng-bootstrap/ng-bootstrap --save
Nota: maggiori informazioni su https://ng-bootstrap.github.io/#/getting-started
2-Quindi dobbiamo installare bootstrap per il sistema css e grid.
npm install bootstrap@4.0.0-beta.2 --save
Nota: maggiori informazioni su https://getbootstrap.com/docs/4.0/getting-started/download/
Ora abbiamo installato l'ambiente e per questo dobbiamo cambiare .angular-cli.json aggiungendo allo stile:
"../node_modules/bootstrap/dist/css/bootstrap.min.css"
Ecco un esempio:
"apps": [
{
"root": "src",
...
],
"index": "index.html",
...
"prefix": "app",
"styles": [
"../node_modules/bootstrap/dist/css/bootstrap.min.css",
"styles.css"
],
"scripts": [],
"environmentSource": "environments/environment.ts",
"environments": {
"dev": "environments/environment.ts",
"prod": "environments/environment.prod.ts"
}
}
]
Il prossimo passo è aggiungere il modulo ng-boostrap al nostro progetto, per farlo dobbiamo aggiungere su app.module.ts:
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
Quindi aggiungi il nuovo modulo all'app dell'applicazione: NgbModule.forRoot ()
Esempio:
@NgModule({
declarations: [
AppComponent,
AppNavbarComponent
],
imports: [
BrowserModule,
NgbModule.forRoot()
],
providers: [],
bootstrap: [AppComponent]
})
Ora possiamo iniziare a utilizzare bootstrap4 sul nostro progetto angular2 / 5.
Ho avuto la stessa domanda e ho trovato questo articolo con una soluzione davvero pulita:
http://leon.radley.se/2017/01/angular-cli-and-bootstrap-4/
Ecco le istruzioni, ma con la mia soluzione semplificata:
Installa Bootstrap 4 ( istruzioni ):
npm install --save bootstrap@4.0.0-alpha.6
Se necessario, rinomina src / styles.css in styles.scss e aggiorna .angular-cli.json per riflettere la modifica:
"styles": [
"styles.scss"
],
Quindi aggiungere questa riga a styles.scss :
@import '~bootstrap/scss/bootstrap';
basta controllare il file package.json e aggiungere dipendenze per bootstrap
"dependencies": {
"bootstrap": "^3.3.7",
}
quindi aggiungi sotto il codice sul .angular-cli.json
file
"styles": [
"styles.css",
"../node_modules/bootstrap/dist/css/bootstrap.css"
],
Finalmente aggiorni il tuo npm localmente usando il terminale
$ npm update
vai a -> file angular-cli.json , trova le proprietà degli stili e aggiungi la prossima puntata: "../node_modules/bootstrap/dist/css/bootstrap.min.css", Potrebbe essere simile al seguente:
"styles": [
"../node_modules/bootstrap/dist/css/bootstrap.min.css",
"styles.css"
],
Procedura con Angular 6+ e Bootstrap 4+:
npm install --save bootstrap@4.1.3
npm install --save jquery 1.9.1
npm audit fix
@import "../node_modules/bootstrap/dist/css/bootstrap.min.css";
O
Aggiungi questa riga al tuo file index.html principale: <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
Stavo cercando la stessa risposta e finalmente ho trovato questo link. Puoi trovare tre diversi modi per aggiungere bootstrap css al tuo progetto angolare 2. Mi ha aiutato
Ecco il link: http://codingthesmartway.com/using-bootstrap-with-angular/
La mia raccomandazione sarebbe invece di dichiararlo nello stilo json per inserirlo negli scss in modo che tutto sia compilato e in un unico posto.
1) installa bootstrap con npm
npm install bootstrap
2) Dichiara bootstrap npm nel CSS con i nostri stili
Creare _bootstrap-custom.scss
:
// Required
@import "bootstrap-custom-required";
// Optional
@import "~bootstrap/scss/root";
@import "~bootstrap/scss/grid";
@import "~bootstrap/scss/tables";
...
..
.
3) All'interno di styles.scss inseriamo
@import "bootstrap-custom";
così avremo tutti i nostri core compilati e in un unico posto
Puoi provare a utilizzare la libreria dell'interfaccia utente di Prettyfox http://ng.prettyfox.org
Questa libreria utilizza bootstrap 4 stili e non necessita di jquery.
Se usi angular cli, dopo aver aggiunto bootstrap in package.json e installato il pacchetto, tutto ciò di cui hai bisogno è aggiungere boostrap.min.css nella sezione "stili" di .angular-cli.json.
Una cosa importante è "Quando si apportano modifiche a .angular-cli.json è necessario riavviare il servizio per raccogliere le modifiche alla configurazione".
Rif:
https://github.com/angular/angular-cli/wiki/stories-include-bootstrap
Un'altra ottima alternativa è usare lo scheletro Angular 2/4 + Bootstrap 4
1) Scarica ZIP ed estrai la cartella zip
2) servire