zoukankan      html  css  js  c++  java
  • Angular2表格/可排序/table

    Angular2表格

    1. 官网下载Angular2开发环境,以及给出的quickstart代码示例demo(地址如下),具体步骤不在详述。
    https://github.com/angular/quickstart
    
    2. 更改demo中,index.html,导入的文件,以及组件的位置
          System.import('app').catch(function(err){ console.error(err); });
          
          <app>Loading...</app>
    
    
    3. demo中将app文件夹中文件全部删除
    4. app文件夹下,新建main.ts文件
    import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
    import { AppModule } from './app.module';
    
    platformBrowserDynamic().bootstrapModule(AppModule);
    
    
    5. app文件夹下,新建app.module.ts文件
    import { NgModule }      from '@angular/core';
    import { BrowserModule } from '@angular/platform-browser';
    import { FormsModule }   from '@angular/forms';
    import { AppComponent }  from './grid';
    
    @NgModule({
      imports: [
        BrowserModule,
        FormsModule
      ],
      declarations: [
        AppComponent, 
      ],
      bootstrap: [ AppComponent ]
    })
    export class AppModule { }
    
    6. app文件夹下,新建grid.ts文件
    import {Component, Input, OnInit} from '@angular/core';
    import {Column} from './column';
    import {Sorter} from './sorter';
    import {GridDemo} from './grid-demo';
    
    @Component({
        selector: 'app',
        templateUrl: 'app/grid.html'
    })
    
    export class AppComponent implements OnInit{
    
        @Input() columns:Array<Column>;
        @Input() rows:Array<any>;
        @Input() name:string;
    
        sorter = new Sorter();
        gridDemo = new GridDemo();
        sort(key){
            this.sorter.sort(key, this.rows);
        }
    
        ngOnInit(){
            this.columns= this.gridDemo.getColumns();
            this.rows=this.gridDemo.getPeople();
            console.log(this.name);
        }
    }
    
    
    7. app文件夹下,新建column.ts, sorter.ts, grid-demo.ts文件,分别为:
    export class Column{
    
        constructor(public name: string, public descr: string){
            
        }
    }
    
    
    export class Sorter{
    
        direction:number;
        key:string;
    
        constructor(){
            this.direction = 1;
        }
    
        sort(key:string,data:any[]){
    
            if(this.key === key){
                this.direction = -this.direction;
            }
            else{
                this.direction = 1;
            }
    
            this.key = key;
    
            data.sort((a,b) => {
                if(a[key] === b[key]){
                    return 0;
                }
                else if(a[key] > b[key]){
                    return this.direction;
                }
                else{
                    return -this.direction;
                }
            });
        }
    
    }
    
    
    import {Component} from '@angular/core';
    import {Column} from './column';
    
    @Component({
        template:'<grid name="person grid" [rows]="people" [columns]="columns"></grid>'
    })
    
    export class GridDemo {
    
        people: Array<Person>;
        columns: Array<Column>;
    
        constructor() {
    
            this.people = this.getPeople();
            this.columns = this.getColumns();
        }
    
        getPeople(): Array<Person> {
            return [
                {firstName:'Joe',lastName:'Jackson',age:20},
                {firstName:'Peter',lastName:'Smith',age:30},
                {firstName:'Jane',lastName:'Doe',age:50},
                {firstName:'Tim',lastName:'Smith',age:80}
            ];
        }
    
        getColumns(): Array<Column> {
            return [
                new Column('firstName','First Name'),
                new Column('lastName','Last Name'),
                new Column('age','Age')
            ];
        }
    }
    
    interface Person {
        firstName:string;
        lastName:string;
        age:number;
    }
    
    
    
    7. 运行
    npm start
    
    8. 结果



    I am a slow walker, but I never walk backwards.



  • 相关阅读:
    Portal 并查集(去重)
    Constructing Roads 最小生成树(prime()),注意边的处理方式
    More is better 并查集最原始 最有效的形式,用rank数组,(结构体)
    【集训试题】SiriusRen的卡牌 set
    【集训试题】exam 信心考 最小割
    [leetcode] Binary Tree Pruning
    [leetcode] Daily Temperatures
    [leetcode] Sort Characters By Frequency
    [leetcode] Subdomain Visit Count
    [leetcode] Number of Boomerangs
  • 原文地址:https://www.cnblogs.com/lknny/p/5844846.html
Copyright © 2011-2022 走看看