2016-01-20 72 views
3

为什么带有Ag-Grid的TypeSctipt上的this example不起作用?例外:在AgGridNg2上找不到指令注释

有错误控制台:

EXCEPTION: No Directive annotation found on AgGridNg2 

与poblem线cars.ts的代码:

import {Component, View} from 'angular2/angular2' 
import {CarsService} from './cars_service' 

@Component({ 
    selector: 'cars', 
    bindings: [CarsService] 
}) 
@View({ 
    template: ` 
     <ag-grid-ng2 id="cars" class="ag-fresh" 
     [column-defs]="columnDefs" [row-data]="rowData"> 
     </ag-grid-ng2> 
    `, 

    //////////////////////////////////// 
    // Problem at this line 
    //////////////////////////////////// 
    directives: [ag.grid.AgGridNg2] 

}) 
export class Cars { 

    private columnDefs: Object[]; 
    private rowData: Object[]; 

    constructor(service: CarsService) { 
    this.columnDefs = [ 
     { headerName: "Make", field: "make" }, 
     { headerName: "Model", field: "model" }, 
     { headerName: "Price", field: "price" } 
    ]; 

    service.getCars().subscribe(
    (res: Response) => { 
     this.rowData = res.json(); 
     //console.log(this.rowData); 
     // TODO: Refresh table 
    }); 
    } 
} 

我必须导入AgGridNg2或不和怎么办呢?或者,也许当前版本的Angular2 Beta已损坏?

+0

这是由角更新造成的。使用Angular beta.0版本,并且不要使用缩小的Angular beta.1版本。此代码表单过期,尝试查找更新的版本或重写它。 –

回答

4

我看了看你的plunkr。在测试版中,angular2/angular2现在是angular2/core

这就是说,似乎你没有正确地初始化ag-grid。你应该尝试类似的东西:

ag.grid.initialiseAgGridWithAngular2({ core: core }); 

bootstrap(App, [ 
    HTTP_BINDINGS, 
    ROUTER_BINDINGS, 
    bind(ROUTER_PRIMARY_COMPONENT).toValue(App), 
    bind(LocationStrategy).toClass(HashLocationStrategy) 
]); 

,并从index.html文件中删除此块:

System.import("angular2/angular2").then(function(ng2) { 
    ag.grid.initialiseAgGridWithAngular2(ng2); 
}); 

下面是使用AG-电网与打字稿的样本:https://github.com/helix46/ag-grid-angular2-beta-ts。这里是关于配置的文件:https://github.com/helix46/ag-grid-angular2-beta-ts/blob/master/src/boot.ts

希望它可以帮助你, 蒂埃里