【Angular2】手风琴样式页面制作

xiaoxiao2021-02-28  63

【前言】

  新生页面里面有一个公约,是手风琴样式的页面。这种样式比较美观,也能节省页面空间。关于手风琴样式页面的制作方式,和大家分享一下~

一、实现思路:

        引用bootstrap样式中的accordion组件实现。

二、代码实现:

1、module文件:

引入手风琴扩展包:

 

import { AccordionModule } from 'ngx-bootstrap/accordion';

2、html文件:

<div class="container"> <!-- 只显示一条公约 --> <accordion (ngModel)="oneAtATime" [closeOthers]="oneAtATime"> <accordion-group #group *ngFor="let convention of conventionList"> <div accordion-heading class="customClass"> {{convention.conventionName}} <!-- 加上>符号 --> <i class="pull-right float-xs-right glyphicon" [ngClass]="{'glyphicon-chevron-down': group?.isOpen, 'glyphicon-chevron-right': !group?.isOpen}"></i> </div> <div accordion-body> {{convention.content}} </div> </accordion-group> </accordion> <input type="checkbox" class="convention" name="GongYue" value="TongYi">我已认真阅读,同意履行公约<br> </div>

3、css文件:

.convention{ margin-top:1%; margin-left:80%; } .customClass { border:solid 1px #33CCFF; background-color: #D9EDF7; }

4、component.ts文件:

import { Component, OnInit } from '@angular/core'; import { FreshmanConventionService } from './freshman-convention.service'; @Component({ selector: 'app-freshman-convention', templateUrl: './freshman-convention.component.html', styleUrls: ['./freshman-convention.component.css'], providers: [FreshmanConventionService] }) export class FreshmanConventionComponent implements OnInit { private url:string="http://192.168.22.202:8080/singleTableMaintain-web/convention/findConvention"; //url接口 public oneAtATime: boolean = true; conventionList: any[] constructor(private freshmanConventionService: FreshmanConventionService) { } ngOnInit() { this.getConvention(); //添加公约内容 } getConvention(){ this.freshmanConventionService.getConvention(this.url).subscribe( conventionList => { this.conventionList = conventionList.data; }, error => console.error(error) ) } }

5、service.ts文件:

import { Injectable } from '@angular/core'; import { Http, Response, Headers, RequestOptions, URLSearchParams } from '@angular/http'; import { Observable } from 'rxjs/Rx'; import 'rxjs/add/operator/map'; import 'rxjs/add/operator/catch'; import 'rxjs/add/operator/toPromise'; @Injectable() export class FreshmanConventionService { private headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' }); private heroesUrl = 'api/heroes'; // URL to web api private Configuration: any; constructor(private http: Http) { } //错误处理 private handleError(error: Response) { console.error(error); return Observable.throw(error.json().error || "serve error"); } //调用远程地址,获取数据 get方法 //返回response的json串 public getData(): Promise<any> { return this.http .get("src/mock-data/freshman-convention.json") .toPromise() .then(response => response.json() as any) .catch(this.handleError); } public getConvention(url:string): Observable<any> { let headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' }); let options = new RequestOptions({ headers: headers }); return this.http.get(url, options) .map((res: Response) => res.json() as any) .catch(this.handleError); } }

6、页面展示:

        合上状态:

        点开状态:

【小结】

 

        手风琴样式页面制作方式在网上资料甚少,希望本篇博客能给大家一些思路和帮助。

 

转载请注明原文地址: https://www.6miu.com/read-63510.html

最新回复(0)