Решение зависимостей для GridComponent в @ syncfusion / ej2-ng-grids

1

Я выполнил этот учебник http://ej2.syncfusion.com/angular/documentation/grid/getting-started.html

Как всегда, когда я запускаю свой проект, JIT сталкивается с этой ошибкой Изображение 174551

InteliSense также показывает ту же ошибку Изображение 174551

Я установил SyncFusionModule как Angular Module для экспорта всех компонентов Syncfusion EJ 2 для Angular, которые планирую использовать в BenchmarkModule. GridComponent в @syncfusion/ej2-ng-grids/src/grid/index может быть поднят Angular; поэтому он распознается как угловой компонент. Однако datasouce не объявлены в "GridComponent", а в его родительской Grid которая не является угловым компонентом, а стандартной, объявленной в @syncfusion\ej2-grids. Кажется, я пропустил импорт зависимостей где-нибудь, чтобы помочь Angular найти определение для Grid. Но я не был уверен, как решить эту проблему.

Сначала я подумал об этом из-за того, что я пропустил сопоставление SystemJS, которое описано в http://ej2.syncfusion.com/angular/documentation/grid/getting-started.html#configuring-system-js; поэтому я поставил этот вопрос на решение Webpack для сопоставления SystemJS. Но один из ответов подсказывал мне, что это не причина.

Вот репозиторий GitHub https://github.com/lamLeX/IocPerformance/tree/gh-pages/IocPerformanceResultWebApp/src/app в случае, если вам хотелось бы знать, как файлы структурированы, чтобы помочь мне с разрешающими зависимостями, потому что я У меня большой опыт в разрешении зависимостей JS; особенно модули ES6.

Обновление из ответа: Код ошибки взят из этого примера http://ej2.syncfusion.com/angular/demos/#/grid/grouping, и я уведомил команду SyncFusion об ошибке в примере кода.

<div class="control-section">
<ej-grid height="320" [datasource]="data" [groupsettings]="groupOptions" [allowgrouping]="true" allowsorting="true" allowpaging="true">
    <e-columns>
        <e-column field="Inventor" width="180" headertext="Inventor Name"></e-column>
        <e-column field="NumberofPatentFamilies" width="220" textalign="right" headertext="Number of Patent Families"></e-column>
        <e-column field="Country" width="140" headertext="Country"></e-column>
        <e-column field="Active" width="120"></e-column>
        <e-column field="Mainfieldsofinvention" width="200" headertext="Main fields of invention"></e-column>
    </e-columns>
</ej-grid>
<div style="margin-top: 10px; text-align: right">Source:
    <a href="https://en.wikipedia.org/wiki/List_of_prolific_inventors" target="_blank">Wikipedia: List of Prolific inventors</a>
</div>    
</div>
  • 1
    Здесь GridModule не import в модуль, github.com/lamLeX/IocPerformance/blob/gh-pages/… . Я думаю, что это проблема. Для неугловых компонентов могут быть другие параметры, но для угловых компонентов эта ошибка возникает, когда отсутствует объявление компонента.
  • 0
    Я пытался добавить import {Grid} из '@ syncfusion / ej2-grids'; до публикации вопроса, но все еще получил ошибку
Показать ещё 4 комментария
Теги:
angular
ecmascript-6
es6-modules
syncfusion

1 ответ

3
Лучший ответ

Это ej2-ng-grids, а не ej2-grids, и GridModule находится прямо там. Так что это должно быть

import { NgModule } from '@angular/core';
import { GridModule, GridComponent, PageService, SortService, FilterService, GroupService } from '@syncfusion/ej2-ng-grids';

@NgModule({
  imports: [GridModule],
  exports: [GridModule],
  declarations: [],
  providers: [PageService, SortService, FilterService, GroupService]
})
export class SyncFusionModule { }

И нет необходимости делать это, потому что это уже сделано в GridAllModule. Он должен быть импортирован в модуль приложения вместо пользовательского SyncFusionModule.

Кроме того, код выше содержит неправильные входы - datasource и т.д. They should be dataSource 'и т.д., Согласно документации.

  • 0
    Вы предположили, что это именно то, что я сделал здесь github.com/lamLeX/IocPerformance/blob/gh-pages/… Вы пытались вызвать ng serve и попробовать его локально на своей машине?
  • 0
    Я также попытался заменить все операторы импорта в SyncFusionModule и заменить их GridAllModule . Все еще получил ту же ошибку.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню