<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        支持Angular2的表格控件

        來源:懂視網 責編:小采 時間:2020-11-27 20:25:21
        文檔

        支持Angular2的表格控件

        支持Angular2的表格控件:前端框架一直這最近幾年特別火的一個話題,尤其是Angular 2擁有眾多的粉絲。在2016年9月份Angular 2正式發布之后,大量的粉絲的開始投入到了Angular 2的懷抱。當然這其中也包括我。如果你想了解Angular 2,推薦官方網站:英文版、中文版。通過快速起步,可以
        推薦度:
        導讀支持Angular2的表格控件:前端框架一直這最近幾年特別火的一個話題,尤其是Angular 2擁有眾多的粉絲。在2016年9月份Angular 2正式發布之后,大量的粉絲的開始投入到了Angular 2的懷抱。當然這其中也包括我。如果你想了解Angular 2,推薦官方網站:英文版、中文版。通過快速起步,可以
        前端框架一直這最近幾年特別火的一個話題,尤其是Angular 2擁有眾多的粉絲。在2016年9月份Angular 2正式發布之后,大量的粉絲的開始投入到了Angular 2的懷抱。當然這其中也包括我。如果你想了解Angular 2,推薦官方網站:英文版、中文版。通過快速起步,可以快速體驗Angular 2。

        公司的一個項目想基于Angular 2的2.4 版本進行開發,目前還在進行前期的調研階段。我擔當的任務就是研究基于Angular 2的UI控件,在官方網站的資源中列出了很多支持Angular 2的資源。發現Wijmo的Flexgrid控件已經支持Angular 2的2.4版本,初步滿足我們的需求。

        一、環境搭建

        Angular 2不僅是功能上和Angular 1有很多的差別,環境搭建也是區別很大。很多初學者反饋Angular 2的代碼很難運行起來。Angular2是基于ES6來開發的,所以會有很多第三方依賴。由于很多瀏覽器還不支持ES6,所以Angular2引入了很多polyfill或者shim, 導致我們引入了第三方依賴。下面以FlexGrid為例來說明如何搭建運行環境。

        1、 安裝NodeJS

        可以從Node官網下載 http://www.gxlcms.com/。

        2、 新建目錄來存放項目

        mkdir ng2-flexGrid

        cd ng2-flexGrid

        3、 配置文件

      1. package.json

      2. 用來標記項目需要使用的npm依賴包。

        {
         "name": "wj-ng2-flexgrid",
         "version": "1.0.0",
         "scripts": {
         "start": "tsc && concurrently \"tsc -w\" \"lite-server\" ",
         "lite": "lite-server",
         "tsc": "tsc",
         "tsc:w": "tsc -w"
         },
         "licenses": [
         {
         "type": "MIT",
         "url": "https://github.com/angular/angular.io/blob/master/LICENSE"
         }
         ],
         "dependencies": {
         "@angular/common": "~2.1.1",
         "@angular/compiler": "~2.1.1",
         "@angular/core": "~2.1.1",
         "@angular/forms": "~2.1.1",
         "@angular/http": "~2.1.1",
         "@angular/platform-browser": "~2.1.1",
         "@angular/platform-browser-dynamic": "~2.1.1",
         "@angular/router": "~3.1.1",
         "@angular/upgrade": "~2.1.1",
         "angular-in-memory-web-api": "~0.1.13",
         "core-js": "^2.4.1",
         "reflect-metadata": "^0.1.8",
         "rxjs": "5.0.0-beta.12",
         "systemjs": "0.19.39",
         "zone.js": "^0.6.25"
         },
         "devDependencies": {
         "@types/core-js": "^0.9.34",
         "@types/node": "^6.0.45",
         "concurrently": "^3.0.0",
         "lite-server": "^2.2.2",
         "typescript": "^2.0.3"
         }
        }
      3. tsconfig.json

      4. TypeScript的配置文件,定義TypeScript 編譯器如何從項目源文件生成 JavaScript 代碼。

        {
         "compilerOptions": {
         "target": "es5",
         "module": "commonjs",
         "moduleResolution": "node",
         "sourceMap": true,
         "emitDecoratorMetadata": true,
         "experimentalDecorators": true,
         "removeComments": false,
         "noImplicitAny": false
         }
        }
      5. systemjs.config.js

      6. 為SystemJS(模塊加載器)提供到哪里查找應用模塊的信息,并注冊了所有必備的依賴包。

        /**
        * System configuration for Angular samples
        * Adjust as necessary for your application needs.
        */
        (function (global) {
         System.config({
         paths: {
         // paths serve as alias
         'npm:': 'node_modules/'
         },
         // map tells the System loader where to look for things
         map: {
         // our app is within the app folder
         app: 'app',
         // angular bundles
         '@angular/core': 'npm:@angular/core/bundles/core.umd.js',
         '@angular/common': 'npm:@angular/common/bundles/common.umd.js',
         '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
         '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
         '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
         '@angular/http': 'npm:@angular/http/bundles/http.umd.js',
         '@angular/router': 'npm:@angular/router/bundles/router.umd.js',
         '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
         '@angular/upgrade': 'npm:@angular/upgrade/bundles/upgrade.umd.js',
         // other libraries
         'rxjs': 'npm:rxjs',
         'angular-in-memory-web-api': 'npm:angular-in-memory-web-api/bundles/in-memory-web-api.umd.js'
         },
         // packages tells the System loader how to load when no filename and/or no extension
         packages: {
         app: {
         main: './main.js',
         defaultExtension: 'js'
         },
         rxjs: {
         defaultExtension: 'js'
         }
         }
         });
        })(this);

        4、 運行npm install

        NPM會根據package.json中定義的包進行安裝。會產生一個node_modules目錄,將這些包放在這里。

        至此環境搭建的任務就已經完成了。下面我們以FlexGrid為例說明支持Angular 2。

        二、支持Angular 2的表格控件如何使用

        1、HTML

        <html>
        <head>
         <meta charset="UTF-8">
         <title>使用 Angular 2 來創建FlexGrid控件</title>
         <!--angular 2 模塊-->
         <!--用于填充舊版瀏覽器-->
         <script src="node_modules/core-js/client/shim.min.js"></script>
         <script src="node_modules/zone.js/dist/zone.js"></script>
         <script src="node_modules/reflect-metadata/Reflect.js"></script>
         <script src="node_modules/systemjs/dist/system.src.js"></script>
         <!--systemjs 配置-->
         <script src="systemjs.config.js"></script>
         
         <!--wijmo 模塊-->
         <script src="scripts/vendor/wijmo.min.js"></script>
         <script src="scripts/vendor/wijmo.grid.min.js"></script>
         <link rel="stylesheet" href="styles/wijmo.min.css">
         <script src="scripts/vendor/wijmo.angular2.min.js"></script>
         <!--mine-->
         <script>
         System.import('./app/main').catch(function(err){ console.error(err); });
         </script>
        </head>
        <body>
         <!--申明根組件-->
         <app-cmp>
         Loading
         </app-cmp>
        </body>
        </html>

        在HTML宿主頁面中,除了Angular 2中必須的組件,還需要引入Wijmo腳本。

        2、編寫數據服務

        'use strict'
        import { Injectable } from '@angular/core';
        @Injectable()
        export class DataService {
         getData(count: number): wijmo.collections.ObservableArray {
         var countries = 'US,Germany,UK,Japan,Italy,Greece'.split(','),
         data = new wijmo.collections.ObservableArray();
         for (var i = 0; i < count; i++) {
         data.push({
         id: i,
         country: countries[i % countries.length],
         date: new Date(2014, i % 12, i % 28),
         amount: Math.random() * 10000,
         active: i % 4 == 0
         });
         }
         return data;
         }
        }

        3、編寫根組件

        現在我們編寫應用的第一個組件:根組件 app.component ,也是這個程序唯一的組件。在這個組件中,需要引入兩個元標記:Component, Inject。還需要注入定義的數據服務data.Service。

        app.component.ts:

        import { Component, Inject } from '@angular/core';
        import { DataService } from '../services/data.service';
        @Component ({
         selector:'app-cmp',
         templateUrl:'app/components/app.component.html',
        })
        export class AppComponent{
         protected dataSvc:DataService;
         data: wijmo.collections.CollectionView;
         constructor(@Inject(DataService) dataSvc:DataService){
         this.dataSvc = dataSvc;
         this.data = new wijmo.collections.CollectionView(this.dataSvc.getData(50));
         }
        }

        app.component.html:

        <div class="header">
         <h2>
         展示如何在angular 2上使用 Wijmo的FlexGrid。
         </h2>
        </div>
        <div>
        <wj-flex-grid [itemsSource]="data"> </wj-flex-grid>
        </div>

        在這里僅僅需要引入wj-flex-grid標記,就可以創建FlexGrid控件。wj-flex-grid 組件是作為一個子組件存在,在app.module 模塊中注入。itemsSource 綁定一個數據源,這個itemsSource是flexgrid已經封裝完成的屬性。

        在Angular 2下使用FlexGrid的最大好處就是:Angular 2組件提供了使用標記語言來聲明控件的能力。聲明標記很好地遵循了MVVM設計模式,我們可以完全通過View(標記語言)來配置我們的組件。FlexGrid支持使用Angular 2標記語言來聲明完整的API。你完全可以使用標記語言設置屬性,附加事件,配置子組件。

        4、編寫根模塊

        在根模塊中將組件注入,需要將引用的所有的組件和模塊都要注入進來。

        import { NgModule } from '@angular/core';
        import { BrowserModule } from '@angular/platform-browser';
        import { WjGridModule } from 'wijmo/wijmo.angular2.grid';
        import { AppComponent } from './components/app.component';
        import { DataService } from './services/data.service';
        @NgModule({
         imports: [ WjGridModule, BrowserModule],
         declarations: [AppComponent],
         providers:[DataService],
         bootstrap: [AppComponent],
        })
        export class AppModule { }

        5、引導程序

        main.ts:

        import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
        import {enableProdMode} from '@angular/core';
        import { AppModule } from './app.module';
        enableProdMode();
        platformBrowserDynamic().bootstrapModule(AppModule);

        三、運行

        在命令行執行 npm start,這時,程序會自動打開默認瀏覽器并渲染頁面。

        start 命令是執行定義在 package.json 文件中的scripts命令。 會將ts代碼編譯為原生js,并且會啟動一個靜態服務器。 這個服務器會檢測文件的變化,當發現文件改動,那么會自動編譯ts代碼。

        下面是運行的結果:

        FlexGrid內置的基本功能比如:排序、過濾、分組、編輯等,也以通過可選的擴展來提供其他功能。FlexGrid和其它產品比較,性能還是不錯的。它的文件尺寸比較小壓縮后約25K。

        下載源代碼

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        支持Angular2的表格控件

        支持Angular2的表格控件:前端框架一直這最近幾年特別火的一個話題,尤其是Angular 2擁有眾多的粉絲。在2016年9月份Angular 2正式發布之后,大量的粉絲的開始投入到了Angular 2的懷抱。當然這其中也包括我。如果你想了解Angular 2,推薦官方網站:英文版、中文版。通過快速起步,可以
        推薦度:
        標簽: 控件 angular angular2
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 特级毛片A级毛片100免费播放| 亚洲欧洲无码AV不卡在线| 本免费AV无码专区一区| 伊人久久亚洲综合| 九九精品成人免费国产片| 亚洲va在线va天堂va888www| 免费毛片在线看不用播放器 | mm1313亚洲精品国产| 成在线人直播免费视频| 自拍偷自拍亚洲精品第1页| 中文字幕无码免费久久| 久久精品国产精品亚洲色婷婷 | 两个人日本WWW免费版 | 日本黄页网站免费| 深夜福利在线免费观看| 国产成人精品曰本亚洲79ren| 高清永久免费观看| 亚洲精品不卡视频| 天天摸天天操免费播放小视频 | 女人张开腿给人桶免费视频| 亚洲av中文无码乱人伦在线观看| 亚洲国产精品视频| 99在线观看精品免费99| 亚洲啪AV永久无码精品放毛片| 亚洲精品国产综合久久一线| 久久久久久AV无码免费网站下载| 亚洲av午夜精品无码专区| 国产伦一区二区三区免费| 免费毛片a线观看| 亚洲最大天堂无码精品区| 亚洲一区二区三区在线视频| 99re免费在线视频| 亚洲爆乳AAA无码专区| 国产亚洲综合一区柠檬导航| 美女被免费喷白浆视频| 国产黄片不卡免费| 亚洲人成网站看在线播放| 亚洲精品成人在线| 114一级毛片免费| 一个人看的www在线免费视频| 亚洲色图校园春色|