如何在 AngularJS 1.6 上设置 Ag-grid

How to setup Ag-grid on AngularJS 1.6

我按照教程轻松设置了 agGrid fot AngularJS,问题是我还使用了打字稿 javascript。 我确实做到了:

npm install ag-grid
var AgGrid = require('ag-grid');
AgGrid.initialiseAgGridWithAngular1(angular);
var module = angular.module("example", ["agGrid"]);

然后在我的 html 中使用它,结果显示:

<div ag-grid="$ctrl.gridOptions" class="ag-theme-balham" style="height: 100%;"></div>

但我没有收到 css。

所以我尝试添加一些要求:

require("ag-grid/dist/styles/ag-grid.css")
require("ag-grid/dist/styles/ag-theme-balham.css")    
var AgGrid = require('ag-grid');

但仍然没有任何想法?谢谢

我使用的是基本主题,它适合我。下面是相同的代码。

    //**Layout Page**
    <link rel="stylesheet" href="~/Content/ag-grid.css">

    //If you're using the bundled version, you can reference the ag-Grid-Enterprise library via CDN
    <script src="_url_to_your_chosen_cdn_/ag-grid-enterprise.js"></script>

    //Load from Local 
    //<script src="node_modules/ag-grid/dist/ag-grid-enterprise.js"></script>

    <script type="text/javascript">
            // Update angular grid license key. If you are using Enterprise Version
            agGrid.LicenseManager.setLicenseKey("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
            // get ag-Grid to create an Angular module and register the ag-Grid directive
            agGrid.initialiseAgGridWithAngular1(angular);

            var app = angular.module("AppName", ["agGrid"]);            
    </script>

    //**View**
    <div ag-grid="agGridOptions" class="ag-theme-fresh" style="height: 400px;"></div>

    //**ControllerJS**
    $scope.agGridOptions = {
        angularCompileRows: true,
        columnDefs: columnDefs,
        rowData: rowData,
    }

我终于找到了官方文档的思想部分。

所以有简单使用的步骤:

  • 安装依赖[=​​13=]
  • 在你的 app.ts 中:
    • 添加您的参考资料var AgGrid = require('ag-grid-community');
    • 初始化 AgGrid AgGrid.initialiseAgGridWithAngular1(angular);
    • 在主模块中添加

在你的 class 或者我的情况下我的组件

  • 引用import { Grid, GridOptions} from "ag-grid-community";
  • 还有你的风格(你也可以添加到vendor.ts)
import "ag-grid-community/dist/styles/ag-grid.css";
import "ag-grid-community/dist/styles/ag-theme-balham.css";

然后使用您的网格!

  • 在构造函数中添加
this.gridOptions = {
  columnDefs: this.createColumnDefs(),
  rowData: this.createRowData()
};
let eGridDiv:HTMLElement = <HTMLElement>document.querySelector('#myGrid');
new Grid(eGridDiv, this.gridOptions);
  • 定义您的内容
private createColumnDefs() {
    return [
        {headerName: "Make", field: "make"},
        {headerName: "Model", field: "model"},
        {headerName: "Price", field: "price"}
    ];
}

private createRowData() {
    return [
        {make: "Toyota", model: "Celica", price: 35000},
        {make: "Ford", model: "Mondeo", price: 32000},
        {make: "Porsche", model: "Boxter", price: 72000}
    ];
}