2016-01-20 3 views
3

Почему this example на TypeSctipt с ag-сетью не работает?ИСКЛЮЧЕНИЕ: Нет аннотации директивы, найденной на AgGridNg2

Существует ошибка в консоли:

EXCEPTION: No Directive annotation found on AgGridNg2 

Кодекс cars.ts с poblem линии:

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.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.

Надеется, что это помогает вам, Thierry

Смежные вопросы