2

创建自定义组件时出现以下错误。

静态解析符号值时遇到错误。调用函数“CreateCustomComponent”,不支持函数调用。考虑将函数或 lambda 替换为对导出函数的引用,解析符号 cus_input

我的文件如下。有人请在我的代码下面给我一个答案吗?

export class MyComponent {   

constructor() {
   console.log("Component created");
}
}
export function CreateCustomComponent( componentArgs: {
selector: string,
inputs: Array<string>,
template: string 

 }): Type<any> {

let comp = Component(componentArgs);
return comp.Class({
    extends: MyComponent,
    constructor: []
});
}

export let cus_input :any = CreateCustomComponent({selector: 'cus-inp',inputs : ["myinput"],template : '<input [value]="myinput" />'})

export const MY_INP_Component: any = [cus_input];

在“app.modeule.ts”中导入如下

 import { MY_INP_Component} from './customcomponent/core';

 import { AppComponent } from './app.component';


 @NgModule({
    imports: [BrowserModule, FormsModule, HttpModule,       RouterModule.forRoot(rootRouterConfig, { useHash: true })],
    declarations: [AppComponent, 
     MY_INP_Component
   ],
  bootstrap: [AppComponent],

   })
export class AppModule { }

这里为什么 m 动态创建组件意味着我有一组 jquery 插件用于 m 动态创建组件并在 jquery 插件中使用这些组件输入和输出。

4

1 回答 1

3

升级我的 CLI 版本后,我也遇到了这个问题。它与 AOT 编译器有关。

您可以通过将函数导出并包装到应用程序模块中的另一个函数(必须是应用程序模块)中来解决此问题,然后使用导出的函数,如下所示:

export function doCreateCustomComponent(){
  return CreateCustomComponent(...);
}

@NgModule({ ... 
declarations: [doCreateCustomComponent], 
bootstrap: [doCreateCustomComponent]
... })
export class AppModule { }

(我稍微简化了你的代码)

于 2017-03-01T12:48:54.870 回答