简介

DevExtreme is a component suite for creating highly responsive web applications for touch devices and traditional desktops.

 

创建Angular应用

 

$ ng new DevExtremeDemo --skip-install --skip-git

$ cnpm install

 

安装DevExtreme

 

$ cnpm install --save devextreme devextreme-angular

 

设置angular-cli.json 文件

"styles": [

"styles.scss",

"../node_modules/devextreme/dist/css/dx.common.css",

"../node_modules/devextreme/dist/css/dx.spa.css",

"../node_modules/devextreme/dist/css/dx.carmine.css"

],

 

 

参考源码

 

index.html

<!doctype html>

<html
lang="en">

 

<head>

<meta
charset="utf-8">

<title>DevExtremeDemo</title>

<base
href="/">

 

<meta
name="viewport"
content="width=device-width, initial-scale=1">

<link
rel="icon"
type="image/x-icon"
href="favicon.ico">

 

<link
rel="stylesheet"
type="text/css"
href="assets/css/dx.common.css" />

<link
rel="stylesheet"
type="text/css"
href="assets/css/dx.spa.css" />

<link
rel="stylesheet"
type="text/css"
href="assets/css/dx.carmine.css" />

 

</head>

 

<body
class="dx-viewport">

<app-root></app-root>

</body>

 

</html>

 

app.module.ts

import { BrowserModule } from
'@angular/platform-browser';

import { NgModule } from
'@angular/core';

import { DxButtonModule } from
'devextreme-angular';

 

import { AppComponent } from
'./app.component';

 

@NgModule({

declarations: [

AppComponent

],

imports: [

DxButtonModule,

BrowserModule

],

providers: [],

bootstrap: [AppComponent]

})

export
class AppModule { }

 

 

 

app.component.html

<!--The content below is only a placeholder and can be replaced.-->

<div
style="text-align:center">

<h1>

Welcome to DevExtreme!

</h1>

</div>

 

<dx-button
text="Press me" (onClick)="hello()"></dx-button>

 

<div
class="dx-fieldset">

<div
class="dx-field">

<div
class="dx-field-label">Normal</div>

<div
class="dx-field-value">

<dx-button [text]="okButtonOptions.text" [type]="okButtonOptions.type" (onClick)="okButtonOptions.onClick()"></dx-button>

</div>

</div>

<div
class="dx-field">

<div
class="dx-field-label">Success</div>

<div
class="dx-field-value">

<dx-button [text]="applyButtonOptions.text" [type]="applyButtonOptions.type" (onClick)="applyButtonOptions.onClick()"></dx-button>

</div>

</div>

<div
class="dx-field">

<div
class="dx-field-label">Default</div>

<div
class="dx-field-value">

<dx-button [text]="doneButtonOptions.text" [type]="doneButtonOptions.type" (onClick)="doneButtonOptions.onClick()"></dx-button>

</div>

</div>

<div
class="dx-field">

<div
class="dx-field-label">Danger</div>

<div
class="dx-field-value">

<dx-button [text]="deleteButtonOptions.text" [type]="deleteButtonOptions.type" (onClick)="deleteButtonOptions.onClick()"></dx-button>

</div>

</div>

<div
class="dx-field">

<div
class="dx-field-label">Back</div>

<div
class="dx-field-value">

<dx-button [type]="backButtonOptions.type" (onClick)="backButtonOptions.onClick()"></dx-button>

</div>

</div>

</div>

 

app.component.html

<!--The content below is only a placeholder and can be replaced.-->

<div
style="text-align:center">

<h1>

Welcome to DevExtreme!

</h1>

</div>

 

<dx-button
text="Press me" (onClick)="hello()"></dx-button>

 

<div
class="dx-fieldset">

<div
class="dx-field">

<div
class="dx-field-label">Normal</div>

<div
class="dx-field-value">

<dx-button [text]="okButtonOptions.text" [type]="okButtonOptions.type" (onClick)="okButtonOptions.onClick()"></dx-button>

</div>

</div>

<div
class="dx-field">

<div
class="dx-field-label">Success</div>

<div
class="dx-field-value">

<dx-button [text]="applyButtonOptions.text" [type]="applyButtonOptions.type" (onClick)="applyButtonOptions.onClick()"></dx-button>

</div>

</div>

<div
class="dx-field">

<div
class="dx-field-label">Default</div>

<div
class="dx-field-value">

<dx-button [text]="doneButtonOptions.text" [type]="doneButtonOptions.type" (onClick)="doneButtonOptions.onClick()"></dx-button>

</div>

</div>

<div
class="dx-field">

<div
class="dx-field-label">Danger</div>

<div
class="dx-field-value">

<dx-button [text]="deleteButtonOptions.text" [type]="deleteButtonOptions.type" (onClick)="deleteButtonOptions.onClick()"></dx-button>

</div>

</div>

<div
class="dx-field">

<div
class="dx-field-label">Back</div>

<div
class="dx-field-value">

<dx-button [type]="backButtonOptions.type" (onClick)="backButtonOptions.onClick()"></dx-button>

</div>

</div>

</div>

 

 

app.component.ts

import { Component } from
'@angular/core';

import notify from
'devextreme/ui/notify';

 

@Component({

selector: 'app-root',

templateUrl: './app.component.html',

styleUrls: ['./app.component.css']

})

export
class AppComponent {

title = 'app';

 

okButtonOptions: any;

applyButtonOptions: any;

doneButtonOptions: any;

deleteButtonOptions: any;

backButtonOptions: any;

 

constructor(){

this.okButtonOptions = {

text: 'OK',

type: 'normal',

onClick: function (e) {

notify("The OK button was clicked");

}

};

 

this.applyButtonOptions = {

text: "Apply",

type: "success",

onClick: function (e) {

notify("The Apply button was clicked");

}

};

 

this.doneButtonOptions = {

text: "Done",

type: "default",

onClick: function (e) {

notify("The Done button was clicked");

}

};

 

this.deleteButtonOptions = {

text: "Delete",

type: "danger",

onClick: function (e) {

notify("The Delete button was clicked");

}

};

 

this.backButtonOptions = {

type: "back",

onClick: function (e) {

notify("The Back button was clicked");

}

};

}

 

hello() {

alert('Hello DevExtreme!');

}

}

 

 

 

运行

 

$ ng serve

 

浏览器中打开网址 http://localhost:4200/

 

参考资源

 

https://js.devexpress.com

https://github.com/devexpress/DevExtreme-angular

 

 

 

 

 

 

 

 

 

 

DevExtreme 搭建Node.js开发环境的更多相关文章

  1. 快速搭建 Node.js 开发环境以及加速 npm

    如何快速搭建 node 开发环境 npm 超慢 github 无法打开的问题 于是我觉得应该写一篇文章解答所有这些起步问题,让新同学也能顺顺利利入门. 快速搭建 Node.js 开发环境 如果你想长期 ...

  2. 【转】使用nvm快速搭建 Node.js 开发环境

    原文链接:http://www.cnblogs.com/shuoer/p/7802891.html 快速搭建 Node.js 开发环境 如果你想长期做 node 开发, 或者想快速更新 node 版本 ...

  3. ES6 学习笔记 (2)-- Liunx环境安装Node.js 与 搭建 Node.js 开发环境

    笔记参考来源:廖雪峰老师的javascript全栈教程 一.安装Node.js 目前Node.js的最新版本是6.2.x.首先,从Node.js官网下载对应平台的安装程序. 1.下载 选择对应的Liu ...

  4. 手把手教你学node之搭建node.js开发环境

    搭建node.js开发环境 本文只针对在Linux或者Mac下面.至于使用 Windows 并坚持玩新技术的同学,我坚信他们一定有着过人的.甚至是不可告人的兼容性 bug 处理能力,所以这部分同学麻烦 ...

  5. 1.0搭建 Node.js 开发环境

    <搭建 Node.js 开发环境> 本课程假设大家都是在 Linux 或者 Mac 下面.至于使用 Windows 并坚持玩新技术的同学,我坚信他们一定有着过人的.甚至是不可告人的兼容性 ...

  6. MongoDB 搭建Node.js开发环境

    理解Mongoose Elegant MongoDB object modeling for Node.js   安装Mongoose   $ cnpm install --save mongoose ...

  7. Oracle 搭建Node.js开发环境

      先决条件 安装oralce客户端驱动. 安装node.js.   创建项目 安装oracledb模块 $npm install oracledb 如果失败了,你可能要爬墙.   参考package ...

  8. Linux虚拟机中 Node.js 开发环境搭建

    Node.js 开发环境搭建: 1.下载CentOS镜像文件和VMWare虚拟机程序; 2.安装VMWare——>添加虚拟机——>选择CentOS镜像文件即可默认安装带有桌面的Linux虚 ...

  9. [转载]Sublime Text 3 搭建 React.js 开发环境

    [转载]Sublime Text 3 搭建 React.js 开发环境 Sublime有很强的自定义功能,插件库很庞大,针对新语言插件更新很快,配合使用可以快速搭建适配语言的开发环境. 1. babe ...

随机推荐

  1. javascript 实现类似百度联想输入,自动补全功能

    js  实现类似百度联想输入,自动补全功能 方案一: search是搜索框id="search" //点击页面隐藏自动补全提示框 document.onclick = functi ...

  2. 51nod 1350 斐波那契表示(递推+找规律)

    传送门 题意 分析 我们发现该数列遵循下列规律: 1 1,2 1,2,2 1,2,2,2,3 1,2,2,2,3,2,3,3 我们令A[i]表示f[i]开始长为f[i-1]的i的最短表示和 那么得到A ...

  3. AngularJS(一)理论篇

    前言 大概今年春天的时候,自己对这个词产生了兴趣,那会只是简单的查了一下,并没有深入研究过这部分知识块,现在终于开始接触这些东西. 内容 AngularJS在web应用方面是一个非常完美的JavaSc ...

  4. PHP 符号

    注解符号: // 单行注解 /*      */    多行注解 引号的使用 ’   ’ 单引号,没有任何意义,不经任何处理直接拿过来; " "双引号,PHP动态处理然后输出,一般 ...

  5. [51nod1239] 欧拉函数之和(杜教筛)

    题面 传送门 题解 话说--就一个杜教筛--刚才那道拿过来改几行就行了-- //minamoto #include<bits/stdc++.h> #define R register #d ...

  6. SP34096 DIVCNTK - Counting Divisors (general)(Min_25筛)

    题面 洛谷 \(\sigma_0(i)\) 表示\(i\) 的约数个数 求\(S_k(n)=\sum_{i=1}^n\sigma_0(i^k)\mod 2^{64}\) 多测,\(T\le10^4,n ...

  7. ReentranLock实现原理

    原文链接:https://blog.csdn.net/jeffleo/article/details/56677425 一.ReentranLock 相信我们都使用过ReentranLock,Reen ...

  8. truts2标签-forEach标签

    <c:forEach begin="1" end="${obj.portnum}" step="1" varStatus=" ...

  9. 2019年GPLT L2-1 特立独行的幸福 比赛题解 中国高校计算机大赛-团体程序设计天梯赛题解

    对一个十进制数的各位数字做一次平方和,称作一次迭代.如果一个十进制数能通过若干次迭代得到 1,就称该数为幸福数.1 是一个幸福数.此外,例如 19 经过 1 次迭代得到 82,2 次迭代后得到 68, ...

  10. socket 连接关闭的TIME_WAIT状态的理由

    MSL就是maximum segment lifetime(最大分节生命期),这是一个IP数据包能在互联网上生存的最长时间,超过这个时间将在网络中消失 TIME_WAIT两点原因: 1.TCP分节可能 ...