开源地址:https://github.com/mrholek/CoreUI-Free-Bootstrap-Admin-Template/tree/master/Angular2_CLI_Starter

分页插件在:https://github.com/michaelbromley/ng2-pagination

操作步骤:

下载到本地,解压Angular2_CLI_Full_Project,这个是Demo完整包,

在Angular2_CLI_Full_Project目录下执行 npm install,完成node_modules的下载。

执行ng serve启动服务,默认端口是4200。如果要发布可以运行ng build将会生成一个disk目录,即为发布目录。

开发步骤:

先分析一下目录

绿线代表系统的模块,在路由中配置访问路径,但是为什么把pages和其他的单独开了呢?后面再说。

按照这个模块思路,我们拿一个研究,打开components模块。

这里面有该模块的路由文件(黄色线部分)。我新建了一个MyInfo页面,需要修改这2个文件。首先打开components.module.ts,添加2句:

import { MyInfoComponent } from './MyInfo.component';
declarations: [

MyInfoComponent
]

页面加了,还得配置菜单,才能点进来,打开Layouts目录下的full-layout.component.html,在components下面添加

<li class="nav-item">
<a class="nav-link" routerLinkActive="active" [routerLink]="['/components/myinfo']"><i class="icon-star"></i> My Info</a>
</li>

为什么要打开full-layout.component.html文件加菜单呢?和上面是同一个问题。

运行起来效果是:

那么加其他页面道理一样。

现在来回答上面的问题:

path: '',
component: FullLayoutComponent,
data: {
title: 'Home'
},
children: [
{
path: 'dashboard',
loadChildren: 'app/dashboard/dashboard.module#DashboardModule'
},
{
path: 'components',
loadChildren: 'app/components/components.module#ComponentsModule'
},…
]

意思是将children中的页面加载到FullLayoutComponent组件的指定位置,所以刚才运行结果有菜单,有样式等等。加载的位置用<router-outlet></router-outlet>表示定义了视图的显示位置,即导航的模块显示区域。

而pages:

path: 'pages',
component: SimpleLayoutComponent,
data: {
title: 'Pages'
},
children: [
{
path: '',
loadChildren: 'app/pages/pages.module#PagesModule',
}
]

用的是SimpleLayoutComponent组件,所以没有菜单。要做多风格系统使用这个再合适不过了。

顺便说一句:使用基于TypeScript的Angular2 开发web应用真心不是一般的爽。

Angular 2 分页说明:

1. 先下载插件:npm install ng2-pagination --save

2. 添加引用:

在components.module.ts中加入:

@NgModule({
imports: [
CommonModule,
ComponentsRoutingModule,
TabsModule,
Ng2PaginationModule
],

另需要引入,否则报什么属性不能绑定什么的那个错:

import { CommonModule } from '@angular/common';
import { BrowserModule } from '@angular/platform-browser';
import { Ng2PaginationModule } from 'ng2-pagination'; //importing ng2-pagination

3. ts代码:

import { ChangeDetectionStrategy, Component, Input } from "@angular/core";

@Component({
templateUrl: 'MyInfo.component.html',
changeDetection: ChangeDetectionStrategy.OnPush
})
export class MyInfoComponent { @Input('data') meals: string[];
page: number = ;
total: number; ngOnInit() {
this.getPage();
}
getPage(page: number) {
this.meals = [
"",
"",
"",
"",
"",
];
this.page=page;
alert(page);
this.total=;
}
constructor() { };
}

Html代码:

<ul class="meal-list">
<li *ngFor="let meal of meals | paginate: { itemsPerPage: 5, currentPage: page, totalItems: total,id: 'server' }">
{{ meal }}
</li>
</ul>
<div class="is-text-centered">
<pagination-controls (pageChange)="getPage($event)" id="server"></pagination-controls>
</div>

另外样式有冲突,我改了下:

exports.DEFAULT_STYLES = ".ng2-pagination {    margin-left:0;    margin-bottom:1rem;}.ng2-pagination::before,.ng2-pagination::after {    content:' ';    display:table;}.ng2-pagination::after {    clear:both;}.ng2-pagination li {    -moz-user-select:none;    -webkit-user-select:none;    -ms-user-select:none;    font-size:0.875rem;    margin-right:0.0625rem;    border-radius:0;}.ng2-pagination li {    display:inline-block;}.ng2-pagination a,.ng2-pagination button {    color:#0a0a0a;    display:block;    padding:0.1875rem 0.625rem;    border-radius:0;    cursor:pointer;    }.ng2-pagination a:hover,.ng2-pagination button:hover {    background:#e6e6e6;    cursor:pointer;    }.ng2-pagination .current {    padding:0.1875rem 0.625rem;    background:#2199e8;    color:#fefefe;    cursor:default;}.ng2-pagination .disabled {    padding:0.1875rem 0.625rem;    color:#cacaca;    cursor:default;}.ng2-pagination .disabled:hover {    background:transparent;}.ng2-pagination .ellipsis::after {    content:'\u2026';    padding:0.1875rem 0.625rem;    color:#0a0a0a;}.ng2-pagination .pagination-previous a::before,.ng2-pagination .pagination-previous.disabled::before {    content:'\u00AB';    display:inline-block;    margin-right:0.5rem;}.ng2-pagination .pagination-next a::after,.ng2-pagination .pagination-next.disabled::after {    content:'\u00BB';    display:inline-block;    margin-left:0.5rem;}.ng2-pagination .show-for-sr {    position:absolute !important;    width:1px;    height:1px;    overflow:hidden;    clip:rect(0,0,0,0);}";

在node_modules\ng2-pagination\dist\template.js

基于Angular2的前端框架CoreUI开发使用说明的更多相关文章

  1. 目前几款基于html5的前端框架:如Bootstrap、Foundation、Semantic UI 、Amaze UI

    Bootstrap是由Twitter在2011年8月推出的开源WEB前端框架,集合CSS 和HTML,使用了最新的浏览器技术,为快速WEB开发提供了一套前端工具包,包括布局.网格.表格.按钮.表单.导 ...

  2. HTML5 前端框架和开发工具【下篇】

    HTML5 前端框架和开发工具[下篇] 快速,安全,响应式,互动和美丽,这些优点吸引更多的 Web 开发人员使用 HTML5.HTML5 有许多新的特性功能,允许开发人员和设计师创建应用程序和网站,带 ...

  3. 推荐25款实用的 HTML5 前端框架和开发工具【下篇】

    快速,安全,响应式,互动和美丽,这些优点吸引更多的 Web 开发人员使用 HTML5.HTML5 有许多新的特性功能,允许开发人员和设计师创建应用程序和网站,带给用户桌面应用程序的速度,性能和体验. ...

  4. 前端思想实现:面向UI编程_____前端框架设计开发

    引子,我去小说看多了,写博客竟然写引子了!!!不过,没引子不知道怎么写了.言归正传吧,前端这个职业,也就这几年刚刚火起来的职业,以前那个混乱的年代,前端要么是UI设计师代劳解决问题,要么就是后端程序员 ...

  5. 基于知名微服务框架go-micro开发gRPC应用程序

    go-micro是golang的一个微服务框架. go-micro各个版本之间的兼容性问题一直被诟病,前几年go-micro更是分化出了两个分支: 一个延续了go-micro,只不过转到了其公司CEO ...

  6. 基于.Net进行前端开发的技术栈发展路线(二)

    前言 上一篇<我的技能树>文章分享了我的技能成长过程,还未完成,今天继续跟大家分享. 01 我的技能树 我的当前的技能树: 其中,标注为黄色旗帜的是基本掌握,标注为红色旗帜的为使用熟练.未 ...

  7. 非常不错的前端框架Kendo-ui

    近期公司在做重构,准备换前端框架由Extjs换kendo-ui,问什么要换框架呢?主要有以下几个原因: Extjs太重,偏向后端语言,前端写起来费劲 Extjs执行太慢(这是主要原因),因为Extjs ...

  8. 14个优秀 JS 前端框架、库、工具及其使用时机

    这篇文章主要描述现今流行的一些 Javascript web 前端框架,库以及它们的适用场景. 新的 Javascript 库层出不穷,从而Web 社区愈发活跃.多样.在多方面快速发展.详细去描述每一 ...

  9. 国内5款优秀的WEB前端框架

    1. JX(腾讯) 官网地址:http://alloyteam.github.io/JX/#home JX 是一个类似 Google Closure Library 的 Web 前端开发框架,服务于 ...

随机推荐

  1. K型热电耦高精度分段线性拟合(C语言)

    extern float GetTempOfVolMi(float V){ float K,B; if(0.03947 <= V < 2.02308) //0~50 {  K = 24.7 ...

  2. Android笔记:通知

    可以在活动里创建,也可以在广播接收器里创建,还可以在服务里创建. NotificationManager manager = (NotificationManager)getSystemService ...

  3. iOS开发UI篇—核心动画(UIView封装动画)

    iOS开发UI篇—核心动画(UIView封装动画) 一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画 ...

  4. Power BI for Office 365(三)Power Pivot

    在Power Pivot中可以从各种数据源中根据你的需求来创建数据模型,并且可以根据需要随时刷新这些数据.在上一篇中,Anna已经准备好了加载到Power Pivot中的数据.Power Pivot就 ...

  5. Jetty使用教程(四:24-27)—Jetty开发指南

    二十四.处理器(Handler ) 24.1 编写一个常用的Handler Jetty的Handler组件用来处理接收到的请求. 很多使用者不需要编写Jetty的Handler ,而是通过使用Serv ...

  6. java 猜数字游戏

    作用:猜数字游戏.随机产生1个数字(1~10),大了.小了或者成功后给出提示. 语言:java 工具:eclipse 作者:潇洒鸿图 时间:2016.11.10 >>>>> ...

  7. POJ 2559 Largest Rectangle in a Histogram ——笛卡尔树

    [题目分析] 本来是单调栈的题目,用笛卡尔树可以快速的水过去. 把每一个矩阵看成一个二元组(出现的顺序,高度). 然后建造笛卡尔树. 神奇的发现,每一个节点的高度*该子树的大小,就是这一块最大的子矩阵 ...

  8. C# Winform TreeView 的一些基本用法

    下面是treeview的用法TreeView组件是由多个类来定义的,TreeView组件是由命名空间"System.Windows .Forms"中的"TreeView& ...

  9. 【BZOJ】3832: [Poi2014]Rally

    题意 \(n(2 \le n \le 500000)\)个点\(m(1 \le m \le 1000000)\)条边的有向无环图,找到一个点,使得删掉这个点后剩余图中的最长路径最短. 分析 神题不会做 ...

  10. osgAnimation例子的注释的注释

    osgAnimation例子的注释的注释 转自:http://www.cnblogs.com/sunliming/archive/2011/12/12/2284995.html #include &l ...