我在我的Angular 2项目中为我的ag-grid声明了几个editorFrameWork组件。但是,当我在编辑器组件的构造函数中插入任何服务时,TypeScript编译器会在加载网页时引发以下错误:
Uncaught Error: Can't resolve all parameters for MyOtherEditorFrameworkComponent: (?)
at CompileMetadataResolver.getDependenciesMetadata (http://<rooturl here>/main.bundle.js:39398:19)
at CompileMetadataResolver.getTypeMetadata (http://<rooturl here>/main.bundle.js:39299:26)
at CompileMetadataResolver.getDirectiveMetadata (http://<rooturl here>/main.bundle.js:39074:28)
at http://<rooturl here>/main.bundle.js:39167:49
at Array.forEach (native)
at CompileMetadataResolver.getNgModuleMetadata (http://<rooturl here>/main.bundle.js:39161:49)
at RuntimeCompiler._compileComponents (http://<rooturl here>/main.bundle.js:57492:47)
at RuntimeCompiler._compileModuleAndComponents (http://<rooturl here>/main.bundle.js:57430:37)
at RuntimeCompiler.compileModuleAsync (http://<rooturl here>/main.bundle.js:57421:21)
at PlatformRef_._bootstrapModuleWithZone (http://<rooturl here>/main.bundle.js:41293:25)
对于另一个需要注入服务的编辑器组件,我已经解决了这个问题,方法是为该组件声明一个模块,并将该模块包含在app.module中。但是,如果我将第二个编辑器组件模块与第一个编辑器组件模块一起添加到下面app.module中类似定义的第二个编辑器组件模块,那么对于第二个编辑器组件似乎就不起作用了。
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { MyOtherEditorFrameworkComponent} from './my-other-editor-framework.component';
@NgModule({
imports: [
CommonModule
],
declarations: [MyOtherEditorFrameworkComponent]
})
export class MyOtherEditorFrameworkModule{ }
import { Component, OnInit, ViewChild, ViewContainerRef } from '@angular/core';
import { AgEditorComponent } from 'ag-grid-ng2/main';
import { MyInjectedService } from '../../../services/myinjectedservice/my-injected.service';
@Component({
selector: 'app-name-editor',
templateUrl: './name-editor.component.html',
styleUrls: ['./name-editor.component.sass']
})
export class mySecondEditorFrameworkComponent implements OnInit, AgEditorComponent {
@ViewChild('mySecondEditor', { read: ViewContainerRef }) mySecondEditor;
constructor(private myInjectedService : MyInjectedService ) { }
...}
@NgModule({
imports: [
AgGridModule.withNg2ComponentSupport(),
MyOtherEditorFrameworkModule,
//MySecondEditorFrameworkModule, //<-- this throws the error
...],
...
providers: [ myInjectedService]
})
组件MySecondeditorFrameworkComponent
不是模块,它应该放在声明
中,而不是放在导入
中。
并在app.module.ts中注册 根据课程,下面应该将服务注入到我的组件中(但会导致前面提到的错误) 我可以按照以下方式修改代码来修复这个问题
@可在Service1和service2中注入 tsconfig.json emitDecoratorMetadata设置为true 在NGModule的提供者部分注册了Service1和Service2 如果有关系的话:我正在构建一个Ionic2RC0应用程序。以下是重要的文件: app.module.ts
我正在尝试使用组件并显示一个对话框。只有当我需要使用时,才会出现此错误。只要不插入就可以创建对话框。 我见过类似这样的问题的其他答案,但我似乎无法将其转化为我的解决方案。需要做些什么才能让它不失败? MessageDialog.component.ts 错误:无法解析MdlDialogReference:(?)的所有参数。在SyntaxError.zoneawareerror(http://loc
ag-Grid 是一个企业级的 JavaScript 数据网格。 ag-Grid 的目的是提供可用于构建企业级应用的表格,例如报告和数据分析,业务流程和数据输入的数据表格。ag-Grid 每一个功能的文档至少有一个例子来展示该功能。 功能特性 大数据和性能 ag-Grid是世界上性能最好的网格,它可以处理大量复杂数据,同时执行最佳性能。 过滤&搜索 ag-Grid提供您可以想象的最先进的过滤和搜索
AG Grid 是一个功能齐全且高度可定制的 JavaScript 数据网格。它提供了出色的性能,没有第三方依赖,并且可以与所有主要的 JavaScript 框架顺利集成。 以下是网格在启用多个过滤器和分组的情况下的外观: 特点: 列交互(调整大小、重新排序,以及钉住列) 分页 排序 行选择 分组/聚合 自定义过滤 原地编辑单元格 记录懒散加载 服务器端记录操作 实时流更新 分层数据支持和树