微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

往Angular应用程序中添加DevExtreme

To start this tutorial, you need an Angular 5+ application created using the Angular CLI. Refer to the Angular CLI documentation for @R_736_4045@ion on how to create such an application. You can also create an Angular application with DevExtreme already added to it.

一键安装

你可以用npx命令安装配置DevExtreme以及相关依赖npx是 DevExtreme CLI的一部分:

npx -p devextreme-cli devextreme add devextreme-angular

注意

npx 在 npm v5.2 及更高版本上有效。 假如你用的是早期版本,升级npm或安装全局DevExtreme CLI,然后运行命令:

npm i -g devextreme-cli
devextreme add devextreme-angular

运行完命令后,你可以直接跳过以下的文章,直接导入 DevExtreme 模块。

要是命令因某些原因不可用,以下指令可用于手动配置。

安装 DevExtreme

安装 devextreme 与 devextreme-angular 的 npm 包:

npm install [email protected] [email protected] --save --save-exact

注意

因为DevExtreme没有使用Semantic版本管理,我们建议使用指定版本的DevExtreme,防止不必要的升级。我们的版本管理系统中,第一个和中间的数字表示主版本,包括行为的变更。

配置样式表

打开 angular.json ,引入 dx.common.css 及预定义的主题样式表 (dx.light.css )。

angular.json

{
  "projects": {
    "ProjectName": {
      "architect": {
        "build": {
          "options": {
            "styles": [
              "node_modules/devextreme/dist/css/dx.common.css",
              "node_modules/devextreme/dist/css/dx.light.css",
              "src/styles.css"
            ],
            ...
          },
          ...
        },
        ...
      }
    },
    ...
  },
  ...
}

对于Angular CLI 6 之前的版本,修改 angular-cli.json 成如下:

angular-cli.json

{
  "apps": [{
    "styles": [
      ...
      "../node_modules/devextreme/dist/css/dx.common.css",
      "../node_modules/devextreme/dist/css/dx.light.css",
      "styles.css"
    ],
    ...
  }],
  ...
}

注意

基于SVG的小部件不需要主题样式。你要是引用了这些样式,则小部件应用匹配的外观。

Angular CLI 6+ 中注册第三方依赖

JSZip 注册

如果你要使用 DataGrid 小部件,在tsconfig.json里注册JSZip库。这个小部件使用该库在客户端导出Excel。

tsconfig.json

{
  ...
  "compilerOptions": {
    ...
    "paths": {
      "jszip": [
        "node_modules/jszip/dist/jszip.min.js"
      ]
    }
  }
}

全局注册

你如果想语言本地化,要先安装这个包和 devextreme-cldr-data 扩展:

npm install --save-dev devextreme-cldr-data globalize

接着在tsconfig.json中注册语言包和 CLDR 脚本scripts ……

tsconfig.json
{
  ...
  "compilerOptions": {
    ...
    "paths": {
      "globalize": [
        "node_modules/globalize/dist/globalize"
      ],
      "globalize/*": [
        "node_modules/globalize/dist/globalize/*"
      ],
      "cldr": [
        "node_modules/cldrjs/dist/cldr"
      ],
      "cldr/*": [
        "node_modules/cldrjs/dist/cldr/*"
      ],
      "jszip": [
        "node_modules/jszip/dist/jszip.min.js"
      ]
    }
  }
}

……然后在src中创建 typings.d.ts 文件,Globalize, DevExtreme 本地消息, 及 devextreme-cldr-data:

typings.d.ts

declare module 'globalize' {
    const value: any;
    export default value;
}
 
declare module 'devextreme/localization/messages/*' {
    const value: any;
    export default value;
}
 
declare module 'devextreme-cldr-data/*' {
    const value: any;
    export default value;
}

使用Angular CLI 5或更早版本的项目, config.js 的配置如下:

config.js

System.config({
    // ...
    paths: {
        "npm:": "node_modules/"
    },
    map: {
        // ...
        "globalize": "npm:globalize/dist/globalize",
        "cldr": "npm:cldrjs/dist/cldr",
        "cldr-data": "npm:cldr-data",
        "json": "npm:systemjs-plugin-json/json.js",
    },
    packages: {
        app: {
            // ...
            "globalize": {
                main: "../globalize.js",
                defaultExtension: "js"
            },
            "cldr": {
                main: "../cldr.js",
                defaultExtension: "js"
            }
        }
    }
});

参考使用全球化的文章示例。

另外,可使用 Intl 这种更轻量的本地化方案。

导入DevExtreme 模块

找到将使用DevExtreme组件的 NgModule ,导入需要的 DevExtreme 模块。注意,如果应用程序中配置了撼树,则可以用 devextreme-angular导入模块。 否则,你要从特定的文件中导入他们。

app.module.ts

// ...
import { DxButtonModule } from 'devextreme-angular';
// or if tree shaking is not configured
// import { DxButtonModule } from 'devextreme-angular/ui/button';
 
@NgModule({
    imports: [
        // ...
        DxButtonModule
    ],
    // ...
})


export class AppModule { }

现在可以在应用程序中使用 DevExtreme 组件了:

app.component.htmlapp.component.ts

<dx-button
    text="Click me"
    (onClick)="helloWorld()">
</dx-button>

运行应用程序

运行应用程序的命令如下:

ng serve
Open http://localhost:4200/ to browse the application

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐