สำหรับรายละเอียดขั้นตอนด้านล่างและตัวอย่างการทำงานคุณสามารถไปที่
https://loiane.com/2017/08/how-to-add-bootstrap-to-an-angular-cli-project/
ขั้นตอนรายละเอียดมากพร้อมคำอธิบายที่เหมาะสม
ขั้นตอน:
การติดตั้ง Bootstrap จาก NPM
ต่อไปเราต้องติดตั้ง Bootstrap เปลี่ยนไดเร็กทอรีเป็นโปรเจ็กต์ที่เราสร้างขึ้น (cd angular-bootstrap-example) และดำเนินการคำสั่งต่อไปนี้:
สำหรับ Bootstrap 3:
npm install bootstrap --save
สำหรับ Bootstrap 4 (ปัจจุบันอยู่ในรุ่นเบต้า):
npm install bootstrap@next --save
หรือ
ทางเลือกอื่น: Local Bootstrap CSS
คุณยังสามารถดาวน์โหลด Bootstrap CSS และเพิ่มลงในโปรเจ็กต์ของคุณได้อีกด้วย ฉันไม่ได้โหลด Bootstrap จากเว็บไซต์และสร้างรูปแบบโฟลเดอร์ (ระดับเดียวกับ styles.css):
หมายเหตุ:
อย่าวางไฟล์ CSS ในเครื่องของคุณไว้ในโฟลเดอร์ assets เมื่อเราสร้างการผลิตด้วย Angular CLI ไฟล์ CSS ที่ประกาศใน .angular-cli.json จะถูกย่อขนาดและสไตล์ทั้งหมดจะรวมอยู่ในสไตล์เดียว. css โฟลเดอร์ assets จะถูกคัดลอกไปยังโฟลเดอร์ dist ในระหว่างขั้นตอนการสร้าง (โค้ด CSS จะซ้ำกัน) วางไฟล์ CSS ในเครื่องของคุณไว้ใต้เนื้อหาในกรณีที่คุณนำเข้าโดยตรงใน index.html
การนำเข้า CSS
1 เรามีสองตัวเลือกในการนำเข้า CSS จาก Bootstrap ที่ติดตั้งจาก NPM:
ข้อความที่ชัดเจน 1: กำหนดค่า .angular-cli.json:
"styles": [
"../node_modules/bootstrap/dist/css/bootstrap.min.css",
"styles.scss"
]
2: นำเข้าโดยตรงใน src / style.css หรือ src / style.scss:
@import '~bootstrap/dist/css/bootstrap.min.css';
โดยส่วนตัวฉันชอบที่จะนำเข้าสไตล์ทั้งหมดของฉันใน src / style.css เนื่องจากมีการประกาศใน .angular-cli.json แล้ว
3.1 ทางเลือกอื่น: Local Bootstrap CSS
หากคุณเพิ่มไฟล์ Bootstrap CSS ไว้ในเครื่องเพียงแค่นำเข้าใน .angular-cli.json
"styles": [
"styles/bootstrap-3.3.7-dist/css/bootstrap.min.css",
"styles.scss"
],
หรือ
src / style.css
@import './styles/bootstrap-3.3.7-dist/css/bootstrap.min.css';
4: Bootstrap คอมโพเนนต์ JavaScript ด้วย ngx-bootstrap (ตัวเลือกที่ 1)
ในกรณีที่คุณไม่จำเป็นต้องใช้คอมโพเนนต์ Bootstrap JavaScript (ที่ต้องใช้ JQuery) นี่คือการตั้งค่าทั้งหมดที่คุณต้องการ แต่ถ้าคุณจำเป็นต้องใช้ modals, accordion, datepicker, tooltips หรือส่วนประกอบอื่น ๆ เราจะใช้ส่วนประกอบเหล่านี้โดยไม่ต้องติดตั้ง jQuery ได้อย่างไร?
มี Angular wrapper library สำหรับ Bootstrap ที่เรียกว่า ngx-bootstrap ซึ่งเราสามารถติดตั้งจาก NPM ได้ด้วย:
npm install ngx-bootstrap --save
บันทึก ng2-bootstrap และ ngx-bootstrap เป็นแพ็คเกจเดียวกัน ng2-bootstrap ถูกเปลี่ยนชื่อเป็น ngx-bootstrap หลังจาก #itsJustAngular
ในกรณีที่คุณต้องการติดตั้ง Bootstrap และ ngx-bootstrap พร้อมกันเมื่อคุณสร้างโครงการ Angular CLI ของคุณ:
npm install bootstrap ngx-bootstrap --save
4.1: การเพิ่มโมดูล Bootstrap ที่จำเป็นใน app.module.ts
ผ่าน ngx-bootstrap และเพิ่มโมดูลที่จำเป็นใน app.module.ts ของคุณ ตัวอย่างเช่นสมมติว่าเราต้องการใช้ส่วนประกอบ Dropdown, Tooltip และ Modal:
import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
import { TooltipModule } from 'ngx-bootstrap/tooltip';
import { ModalModule } from 'ngx-bootstrap/modal';
@NgModule({
imports: [
BrowserModule,
BsDropdownModule.forRoot(),
TooltipModule.forRoot(),
ModalModule.forRoot()
],
// ...
})
export class AppBootstrapModule {}
เนื่องจากเราเรียกเมธอด. forRoot () สำหรับแต่ละโมดูล (เนื่องจากผู้ให้บริการโมดูล ngx-bootstrap) ฟังก์ชันการทำงานจะพร้อมใช้งานในส่วนประกอบและโมดูลทั้งหมดของโปรเจ็กต์ของคุณ (ขอบเขตส่วนกลาง)
อีกทางเลือกหนึ่งหากคุณต้องการจัดระเบียบ ngx-bootstrap ในโมดูลอื่น (สำหรับวัตถุประสงค์ขององค์กรในกรณีที่คุณต้องการนำเข้าโมดูล bs จำนวนมากและไม่ต้องการทำให้แอปของคุณรกโมดูล) คุณสามารถสร้างโมดูลได้ app-bootstrap.module.ts นำเข้าโมดูล Bootstrap (โดยใช้ forRoot ()) และประกาศในส่วนการส่งออก (เพื่อให้สามารถใช้งานได้กับโมดูลอื่น ๆ ด้วย)
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
import { TooltipModule } from 'ngx-bootstrap/tooltip';
import { ModalModule } from 'ngx-bootstrap/modal';
@NgModule({
imports: [
CommonModule,
BsDropdownModule.forRoot(),
TooltipModule.forRoot(),
ModalModule.forRoot()
],
exports: [BsDropdownModule, TooltipModule, ModalModule]
})
export class AppBootstrapModule {}
ในที่สุดอย่าลืมนำเข้าโมดูล bootstrap ใน app.module.ts ของคุณ
นำเข้า {AppBootstrapModule} จาก './app-bootstrap/app-bootstrap.module';
@NgModule({
imports: [BrowserModule, AppBootstrapModule],
// ...
})
export class AppModule {}
ngx-bootstrap ทำงานร่วมกับ Bootstrap 3 และ 4 และฉันยังได้ทำการทดสอบบางอย่างและฟังก์ชันส่วนใหญ่ยังทำงานร่วมกับ Bootstrap 2.x (ใช่ฉันยังมีรหัสเดิมที่ต้องดูแล)
หวังว่านี่จะช่วยใครสักคน!