一,准备阶段。
初始化项目,并尝试运行:
ng new myProject cd myProject ng serve
二,添加外部框架:
npm i jquery --save由于typescript不能直接识别js,需要引入类型描述文件
npm i @types/jquery --save
文件会下载到node_modules文件夹
然后在package.json文件里添加进来:
手动在angular.json文件里,添加对js文件及css文件的引用:
三,新建组件
将需求内容分割成若干组件,然后新建这些组件。
使用命令
$ ng g component product
app文件夹内生成了相关组件文件夹,且app.module.ts内会自动引入新增组件
四,编写主组件
五,bootstrap相关代码
官方文档:
https://v4.bootcss.com/docs
导航:
<nav class="navbar navbar-expand-lg navbar-dark bg-dark"> <div class="container"> <a class="navbar-brand" href="#">导航栏</a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarSupportedContent"> <ul class="navbar-nav mr-auto"> <li class="nav-item active"> <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a> </li> <li class="nav-item"> <a class="nav-link" href="#">Link</a> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Dropdown </a> <div class="dropdown-menu" aria-labelledby="navbarDropdown"> <a class="dropdown-item" href="#">Action</a> <a class="dropdown-item" href="#">Another action</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="#">Something else here</a> </div> </li> <li class="nav-item"> <a class="nav-link disabled" href="#">Disabled</a> </li> </ul> <form class="form-inline my-2 my-lg-0"> <input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search"> <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button> </form> </div> </div> </nav>
form表单:
<form> <div class="form-group"> <label for="productTitle">商品名称</label> <input type="email" class="form-control" id="productTitle" aria-describedby="emailHelp" placeholder="Enter email"> <!-- <small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small> --> </div> <div class="form-group"> <label for="productPrice">商品价格</label> <input type="email" class="form-control" id="productPrice" aria-describedby="emailHelp" placeholder="Enter email"> <!-- <small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small> --> </div> <div class="form-group"> <label for="productCategory">商品类别</label> <select id="productCategory" class="form-control" name=""> </select> <!-- <small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small> --> </div> <!-- <div class="form-group"> <label for="exampleInputPassword1">Password</label> <input type="password" class="form-control" id="exampleInputPassword1" placeholder="Password"> </div> <div class="form-check"> <input type="checkbox" class="form-check-input" id="exampleCheck1"> <label class="form-check-label" for="exampleCheck1">Check me out</label> </div> --> <div class="form-group"> <button type="submit" class="btn btn-primary btn-block">搜索</button> </div> </form>
轮播:
<div id="carouselExampleControls" class="carousel slide" data-ride="carousel"> <div class="carousel-inner"> <div class="carousel-item active"> <img class="d-block w-100" src="../assets/img/1.jpg" alt="First slide"> <div class="carousel-caption d-none d-md-block"> <h5>大标题</h5> <p>文本</p> </div> </div> <div class="carousel-item"> <img class="d-block w-100" src="../assets/img/2.jpg" alt="Second slide"> <div class="carousel-caption d-none d-md-block"> <h5>大标题</h5> <p>文本</p> </div> </div> <div class="carousel-item"> <img class="d-block w-100" src="../assets/img/3.jpg" alt="Third slide"> <div class="carousel-caption d-none d-md-block"> <h5>大标题</h5> <p>文本</p> </div> </div> </div> <a class="carousel-control-prev" href="#carouselExampleControls" role="button" data-slide="prev"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="sr-only">Previous</span> </a> <a class="carousel-control-next" href="#carouselExampleControls" role="button" data-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="sr-only">Next</span> </a> </div>